class cList implements java.io.Serializable // extends java.util.AbstractList implements java.util.List // PERFO!!! extends java.util.Vector { Object[] elementData; int size = 0; /* public java.util.ListIterator listIterator(int i) { return null; // listIterator(0); } public java.util.ListIterator listIterator() { return null; // listIterator(0); } public int indexOf(Object o) { return 0; } public int lastIndexOf(Object o) { return 0; } */ cList() { clear(); } cList(int initialcapacity) { //super(initialcapacity); elementData = new Object[initialcapacity]; } public E get(int i) { return (E) elementData[i]; } public int size() { if (elementData.length != size) { assert(false); } return size; } public void clear() { elementData = new Object[0]; size = 0; } public synchronized java.util.List subList(int fromIndex, int toIndex) { // return Collections.synchronizedList(super.subList(fromIndex, toIndex), // this); return null; } public void add(int i, E obj) { insertElementAt(obj,i); } public E set(int i, E obj) { return null; } public boolean add(E obj) { //insertElementAt(obj,0); add(size, obj); return true; } public void insertElementAt(E obj, int index) { //modCount++; //if (index >= size) { Object[] keep = elementData; elementData = new Object[size+1]; System.arraycopy(keep, 0, elementData, 0, size); size = size+1; } try { // if (size > index+1) System.arraycopy(elementData, index, elementData, index + 1, size-1 - index); } catch (Exception e) { e.printStackTrace(); } elementData[index] = obj; //size++; } boolean contains(E obj) { return indexOf(obj) != -1; } int indexOf(E obj) { for (int i=0; i 0) { System.arraycopy(elementData, index + 1, elementData, index, numMoved); } //size--; { Object[] keep = elementData; elementData = new Object[size-1]; System.arraycopy(keep, 0, elementData, 0, size-1); size = size-1; } return oldValue; } public String toString() { String out = "["; for (int i = 0; i < size; i++) { out += elementData[i]; if (i < size - 1) { //out += ","; } } for (int i = 0; i < 5-size; i++) { out += " "; } out += "]"; return out; } }