sclass SimpleIntList extends AbstractRandomAccessList { int[] data = EMPTY_ELEMENTDATA; int size; private static final int[] EMPTY_ELEMENTDATA = {}; public void add(int i) { ensureCapacityInternal(size+1); data[size++] = i; } public void add(Int i) { add((int) i); } public int size() { ret size; } public Int get(int i) { if (i >= 0 && i < size) ret data[i]; throw new IndexOutOfBoundsException(i + "/" + size); } void ensureCapacityInternal(int minCapacity) { if (data.length < i) grow(minCapacity); } private void grow(int minCapacity) { int oldCapacity = data.length; int newCapacity = oldCapacity + (oldCapacity >> 1); if (newCapacity - minCapacity < 0) newCapacity = minCapacity; data = Arrays.copyOf(data, newCapacity); } // always returns a fresh copy int[] toIntArray() { int[] a = new int[size]; System.arraycopy(data, 0, a, 0, size); ret a; } }