Vector的大多数成员方法都会加上synchronized关键字,也就是说Vector线程是安全的。
由于Vector操作成员的方法必须保证同步,因此它的执行效率没有ArrayList高。所以,在一般情况下,只有在必须保证同步的地方才用到Vector,大多数情况下,用的是ArrayList。
它们两者的使用比较类似,一般通过add()方法来加元素;remove()方法删除元素;size()得到集合元素的数量。示例代码如下:
Vector<String> v = new Vector<String>();
v.add("hello");
v.remove("hello");
System.out.println(v.size());
ArrayList<String> al = new ArrayList<String>();
al.add("hell");
al.remove("hello");
System.out.println(al.size());
Vector是线程安全的,因为它操作元素的方法都是同步方法,而ArrayList不是。开发过程中根据需要选择,如果需要保证线程安全,则选用Vector,而不必保证线程安全可选ArrayList,因为效率会高些。