您的位置:首页 > 编程语言

自己实现的简单的Vector代码

2009-01-06 11:59 513 查看
package p0106;

public class MyVector {
private Object[] data;
private int incr;
private int count;

public MyVector() {
this(10, 0);
}

public MyVector(int capacity) {
this(capacity, 0);
}

public MyVector(int capacity, int increment) {
data = new Object[capacity];
this.incr = increment;
}

public void add(Object o) {
if (count == data.length) {
Object temp[] = null;
if (incr == 0) {
temp = new Object[data.length * 2];
} else {
temp = new Object[data.length + incr];
}
for (int i = 0; i < data.length; i++) {
temp[i] = data[i];
}
data = temp;
}
data[count] = o;
count++;

}

public int size() {
return count;
}

public int capacity() {
return data.length;
}

public void remove(Object o) {
for (int i = 0; i < count; i++) {
if (data[i].equals(o)) {
remove(i);
break;
}
}
}

public void remove(int index) {
for (int i = index; i < count - 1; i++) {
data[i] = data[i + 1];
}
count--;
}

public Object elementsAt(int index) throws Exception {
if (index >= count || index < 0) {
throw new Exception("index 错误");
}
return data[index];
}

public void trimToSize() {
Object[] temp = new Object[count];
for (int i = 0; i < count; i++) {
temp[i] = data[i];
}
data = temp;
}

public Object firstElement() {
return data[0];
}

public boolean isEmpty() {
return count == 0;
}

public static void main(String[] args) {
MyVector vec = new MyVector(10, 5);
vec.add("ddddd");
vec.add("ddddd");
vec.add("ddddd");
vec.add("ddddd");
vec.trimToSize();
System.out.println(vec.size());
System.out.println(vec.capacity());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐