public class DynamicArray1 { Object[] store; int capacity; // how many items can store int size; // how many items stored public DynamicArray1() { store = new Object[10]; capacity = 10; size = 0; } public void add(Object o) { // if the store has space, insert o if (size < capacity) { store[size] = o; size++; } else { capacity = capacity * 2; // or whatever Object[] newstore = new Object[capacity]; for (int i = 0; i < size; i++) { newstore[i] = store[i]; } store = newstore; store[size] = o; size++; } } public Object get(int i) { // check if i is within bounds; if ((0 <= i) && (i < size)) return store[i]; else throw new ArrayIndexOutOfBoundsException(); } public boolean remove(Object o) { int index = -1; // look for o in store for (int i = 0; i < size; i++) { if(store[i].equals(o)) { index = i; break; } } // if o not in store, return false if (index == -1) return false; // replace o by the next value and shift left for (int i = index; i < size-1; i++) { store[i] = store[i+1]; } size--; return true; } public int size() { return size; } // just for illustration; public static void main(String[] args) { DynamicArray1 myarray = new DynamicArray1(); String[] numbers = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}; System.out.println("Adding ten numbers"); for (int i = 0; i < numbers.length; i++) { myarray.add(numbers[i]); } for (int i = 0; i < myarray.size(); i++) { System.out.print(myarray.get(i) + " "); } System.out.println(); System.out.println("Adding eleventh number"); myarray.add("10"); // will be inserted in the enlarged array at index 10 System.out.println("Printing number at index 10"); System.out.println(myarray.get(10)); // return element at index 10 System.out.println("Removing number 4"); myarray.remove("4"); for (int i = 0; i < myarray.size(); i++) { System.out.print(myarray.get(i) + " "); } System.out.println(); } }