Vector
一. 基本特点
1. 动态数组,初始容量为10.(本质上就是数组)
2. 线程同步(区别于动态数组ArrayList).Vector 增加或者删除元素接口均加了同步关键字。
源码如下所示:
public synchronized boolean add(E var1) { ++this.modCount; this.ensureCapacityHelper(this.elementCount + 1); this.elementData[this.elementCount++] = var1; return true; }
public synchronized void addElement(E var1) { ++this.modCount; this.ensureCapacityHelper(this.elementCount + 1); this.elementData[this.elementCount++] = var1; } public synchronized boolean removeElement(Object var1) { ++this.modCount; int var2 = this.indexOf(var1); if(var2 >= 0) { this.removeElementAt(var2); return true; } else { return false; } }
二. 试用范围
主要用于存储的元素个数不定,且需要保证线程安全的地方。
二. Deme
简单给出了增加和删除元素的方法。
public class myClass { public static void main(String[] args){ Vector vector = new Vector(); vector.add("one"); vector.add("two"); vector.add("three"); vector.add("four"); vector.add("five"); System.out.println("vector ="+vector); //增加元素(两种方法均往数组后面增加元素,差别add()有boolen返回值而addElement没有) vector.addElement("six"); vector.add("seven"); System.out.println("vector ="+vector); //移除指定Index的元素 vector.remove(1); System.out.println("vector ="+vector); //移除指定值的元素 vector.remove("three"); System.out.println("vector ="+vector); vector.add(4,"eight"); System.out.println("vector ="+vector); } }
输出:
vector =[one, two, three, four, five]
vector =[one, two, three, four, five, six, seven]
vector =[one, three, four, five, six, seven]
vector =[one, four, five, six, seven]
vector =[one, four, five, six, eight, seven]
Process finished with exit code 0
四. 总结:注意使用的范围,如果不是需要线程安全,就使用ArrayList, 因为同步锁会影响访问的性能。