|
class cList<E> implements java.io.Serializable // extends java.util.AbstractList<E> implements java.util.List<E> // PERFO!!! extends java.util.Vector<E>
|
{
|
Object[] elementData;
|
int size = 0;
|
|
/*
|
public java.util.ListIterator<E> listIterator(int i)
|
{
|
return null; // listIterator(0);
|
}
|
|
public java.util.ListIterator<E> 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<E> 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<size; i++)
|
{
|
if (elementData[i] == obj)
|
return i;
|
}
|
|
return -1;
|
}
|
|
int remove(E obj)
|
{
|
for (int i=0; i<size; i++)
|
{
|
if (elementData[i] == obj)
|
{
|
remove(i);
|
return i;
|
}
|
}
|
|
return -1;
|
}
|
|
public E remove(int index)
|
{
|
E oldValue = (E) elementData[index];
|
|
int numMoved = size - index - 1;
|
if (numMoved > 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;
|
}
|
}
|