class library additions
[IRC.git] / Robust / src / ClassLibrary / Vector.java
1 public class Vector {
2   Object[] array;
3   int size;
4   int capacityIncrement;
5
6   public Vector() {
7     capacityIncrement=0;
8     size=0;
9     array=new Object[10];
10   }
11
12   public void clear() {
13     size=0;
14     array=new Object[10];
15   }
16
17   public int indexOf(Object elem) {
18     return indexOf(elem, 0);
19   }
20
21   public int indexOf(Object elem, int index) {
22     for(int i=index; i<size; i++) {
23       if (elem.equals(array[i]))
24         return i;
25     }
26     return -1;
27   }
28
29   public Object elementAt(int index) {
30     if (index<0 || index >=size) {
31       System.printString("Illegal Vector.elementAt");
32       return null;
33     }
34     return array[index];
35   }
36
37   public void setElementAt(Object obj, int index) {
38     if (index>=0 && index <size)
39       array[index]=obj;
40     else
41       System.printString("Illegal setElementAt");
42   }
43
44   private ensureCapacity(int minCapacity) {
45     if (minCapacity>array.length) {
46       int newsize;
47       if (capacityIncrement<=0)
48         newsize=array.length*2;
49       else
50         newsize=array.length+capacityIncrement;
51       if (newsize<minCapacity)
52         newsize=minCapacity;
53       Object [] newarray=new Object[newsize];
54       for(int i=0; i<size; i++)
55         newarray[i]=array[i];
56       array=newarray;
57     }
58   }
59
60   public int size() {
61     return size;
62   }
63
64   public Enumeration elements() {
65     System.printString("Vector.elements not implemented");
66   }
67
68   public void addElement(Object obj) {
69     if (size==array.length) {
70       ensureCapacity(size+1);
71     }
72     array[size++]=obj;
73   }
74
75   public void insertElementAt(Object obj, int index) {
76     if (index<0||index>=size)
77       System.printString("Illegal insertElementAt");
78     if (size==array.length) {
79       ensureCapacity(size+1);
80     }
81     size++;
82     for(int i=size-1; i>index; --i) {
83       array[i] = array[i-1];
84     }
85     array[index] = obj;
86   }
87
88   public void removeElementAt(int index) {
89     if (index<0||index>=size)
90       System.printString("Illegal remove");
91     for(int i=index; i<(size-1); i++) {
92       array[i]=array[i+1];
93     }
94     size--;
95   }
96
97   public void removeAllElements() {
98     int s = size;
99     for(int i = 0; i<s; ++i ) {
100       removeElementAt(0);
101     }
102   }
103 }