5.5.4 improving expanding array public class ExpandingArray { private static final int STARTING_SIZE = 10; private int[] arr; private int[] copy; private int currentSize; private int numElements; public ExpandingArray() { arr = new int[STARTING_SIZE]; 5.5.4 improving expanding array PasteShr 5.5.4 improving expanding array currentSize = STARTING_SIZE; numElements = 0; } // Remove the element at index `index` and shift // all subsequent elements to the left. public int remove(int index) { int[] copy = new int[arr.length-1]; for(int i = 0; i < index; i++) 5.5.4 improving expanding array How to dowload it? 5.5.4 improving expanding array { copy[i] = arr[i]; } for(int k = index + 1; k <= copy.length; k++) { copy[k-1] = arr[k]; } numElements = copy.length; currentSize = copy.length; arr = copy; 5.5.4 improving expanding array How to get it? 5.5.4 improving expanding array return 0; } // Add the int `element` at the `index` in the array. // You'll need to shift everything one index to the right // after this index. public void add(int index, int element) { int[] copy = new int[arr.length+1]; 5.5.4 improving expanding array PasteShr 5.5.4 improving expanding array for(int i = 0; i < index; i++) { copy[i] = arr[i]; } copy[index] = element; for(int k = index + 2; k <= copy.length; k++) { copy[k-1] = arr[k-2]; } numElements = copy.length; 5.5.4 improving expanding array How to get it for free? 5.5.4 improving expanding array currentSize = copy.length; arr = copy; } // Return the number of elements in your array. public int size() { // your code here return arr.length; } 5.5.4 improving expanding array How to use it? 5.5.4 improving expanding array private boolean isFull() { return numElements == currentSize; } private void expand() { System.out.println("Expanding"); int newSize = currentSize * 2; 5.5.4 improving expanding array How to dowload it? 5.5.4 improving expanding array int[] newArray = new int[newSize]; // Copy over old elements for(int i = 0; i < currentSize; i++) { newArray[i] = arr[i]; } currentSize = newSize; arr = newArray; 5.5.4 improving expanding array How to get it for free? 5.5.4 improving expanding array } public int get(int index) { return arr[index]; } public void add(int x) { if(isFull()) 5.5.4 improving expanding array How to get it? 5.5.4 improving expanding array { expand(); } arr[numElements] = x; numElements++; } public String toString() { String str = "{"; 5.5.4 improving expanding array How to use it? 5.5.4 improving expanding array for (int i=0; i < numElements; i++) { str += arr[i] + ", "; } if (str.length() > 0 && str.charAt(str.length()-2)==',') { str = str.substring(0, str.length()-2); str += "}"; } return str; } } 5.5.4 improving expanding array How to use it? 5.5.4 improving expanding array 5.5.4 improving expanding array