public class StringVector{
private static final int DEFAULT_SIZE = 3;
private String [] data;
private int count;
public StringVector() {
this(DEFAULT_SIZE);
}
public StringVector(int initialSize){
data = new String[initialSize];
}
public void add(String str){
if(str == null)
return;
ensureCapacity(count + 1);
data[count++] = str;
}
private void ensureCapacity(int minCapacity){
int oldCapacity = data.length;
if (minCapacity > oldCapacity){
String oldData[] = data;
int newCapacity = oldCapacity * 2;
data = new String[newCapacity];
System.arraycopy(oldData, 0, data, 0, count);
}
}
public void remove(String str){
if(str == null)
return;
for(int i = 0; i < count; i++){
if(data[i].equals(str)){
System.arraycopy(data,i+1,data,i,count-1);
data[--count] = null;
return;
}
}
}
public final String get(int index) {
if(index < 0)
return null;
else if(index > count)
return null;
else
return data[index];
}
public int size(){
return count;
}
}