array=new Object[10];
}
- public Vector( int size ) {
+ public Vector(int size) {
capacityIncrement=0;
this.size=0;
array=new Object[size];
}
+ //used for internal cloning
+ private Vector(int size, int capacityIncrement, Object[] array) {
+ this.size = size;
+ this.capacityIncrement = capacityIncrement;
+ this.array = new Object[array.length];
+ System.arraycopy(array, 0, this.array, 0, size);
+ }
+
+ public Vector clone() {
+ return new Vector(size,capacityIncrement, array);
+ }
+
public boolean isEmpty() {
return size==0;
}
public int indexOf(Object elem, int index) {
for(int i=index; i<size; i++) {
if (elem.equals(array[i]))
- return i;
+ return i;
}
return -1;
}
return indexOf(e)!=-1;
}
- public void remove(Object o) {
+ public boolean remove(Object o) {
int in=indexOf(o);
- if (in!=-1)
+ if (in!=-1) {
removeElementAt(in);
+ return true;
+ }
+
+ return false;
}
public Object elementAt(int index) {
}
}
- private ensureCapacity(int minCapacity) {
+ private void ensureCapacity(int minCapacity) {
if (minCapacity>array.length) {
int newsize;
if (capacityIncrement<=0)
- newsize=array.length*2;
+ newsize=array.length*2;
else
- newsize=array.length+capacityIncrement;
+ newsize=array.length+capacityIncrement;
if (newsize<minCapacity)
- newsize=minCapacity;
+ newsize=minCapacity;
Object [] newarray=new Object[newsize];
for(int i=0; i<size; i++)
- newarray[i]=array[i];
+ newarray[i]=array[i];
array=newarray;
}
}