本帖最后由 吴健 于 2012-12-9 10:04 编辑
ArrayList和Vector都是基于数组实现的List类,所以ArrayList类和Vector类中封装了一个动态再分配的object[]数组。每个ArrayList和Vector对象有一个capacity属性,这个capacity表示它们所 封装的object[]数组的长度。当向ArrayList或Vector添加元素时,capacity会自动增加。
Vector是一个古老的集合,从JDK1.0开始时就有了,从JDK1.2以后,就将Vector改为实现List接口,从而导致Vector中有一些功能重复的方法。
ArrayList和Vector的区别是:ArrayList是线程不安全的,当多个线程访问同一个ArrayList时,如果有超过一个线程修改ArrayList集合时,需要保证程序的同步性。但是Vector是线程安全的,但是就因为如此Vector的性能要比ArrayList差。
LinkedList是基于链表实现的List类,对与顺序访问集合中的元素进行了优化,特别是插入、删除时效率高。 |