Fix tabbing.... Please fix your editors so they do tabbing correctly!!! (Spaces...
[IRC.git] / Robust / src / ClassLibrary / Vector.java
index 2cb0a8fca2d87eeea5df573e61f3761406a06da9..df991ef8c6db7ef1ee038957fde8a3984657fe28 100644 (file)
@@ -9,6 +9,28 @@ public class Vector {
     array=new Object[10];
   }
 
+  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 void clear() {
     size=0;
     array=new Object[10];
@@ -26,8 +48,22 @@ public class Vector {
     return -1;
   }
 
+  public boolean contains(Object e) {
+    return indexOf(e)!=-1;
+  }
+
+  public boolean  remove(Object o) {
+    int in=indexOf(o);
+    if (in!=-1) {
+      removeElementAt(in);
+      return true;
+    }
+
+    return false;
+  }
+
   public Object elementAt(int index) {
-    if (index<0 || index >=size) {
+    if (index<0 | index >=size) {
       System.printString("Illegal Vector.elementAt\n");
       System.exit(-1);
       return null;
@@ -36,9 +72,7 @@ public class Vector {
   }
 
   public void setElementAt(Object obj, int index) {
-    if (index>=size)
-      ensureCapacity(index+1);
-    if (index>=0 && index <size)
+    if (index <size)
       array[index]=obj;
     else {
       System.printString("Illegal Vector.setElementAt\n");
@@ -46,7 +80,7 @@ public class Vector {
     }
   }
 
-  private ensureCapacity(int minCapacity) {
+  private void ensureCapacity(int minCapacity) {
     if (minCapacity>array.length) {
       int newsize;
       if (capacityIncrement<=0)
@@ -99,12 +133,13 @@ public class Vector {
       System.printString("Illegal Vector.removeElementAt\n");
       System.exit(-1);
     }
-    for(int i=index; i<(size-1); i++) {
-      array[i]=array[i+1];
-    }
+    removeElement(array, index, size);
     size--;
+    array[size]=null;
   }
 
+  public static native void removeElement(Object[] array, int index, int size);
+
   public void removeAllElements() {
     int s = size;
     for(int i = 0; i<s; ++i ) {