List接口的实现类有ArrayList,,LinkedList,和Vector。
1. 从内部是实现机制上讲。
(1) ArrayList和Vector的内部实现机制:他们是用“数组”来存储对象的。
这种机制的特点:查找速度快(利用数组索引查找),但增删效率和“链表”相比偏低。
(2) LinkedList的内部实现机制:LinkedList是用“链表”来存储对象的。
这种机制的特点:查找速度慢,但增删效率和“数组”相比偏高。
2. 对比ArrayList和Vector
(1)相同点:从内部实现机制来讲,ArrayList和Vector都是使用数组(Array)来控制集合中的对象。当你向这两
种类型中增加元素的时候,如果元素的数目超出了内部数组目前的长度,他们都需要扩展内部数组的长度。
(2)不同点:
① 同步性上的区别
A). Vector是同步的,这个类中的一些防范保证了Vector中的对象是线程安全的。
B). ArrayList则是异步的,因此,ArrayList中的对象并不是线程安全的。
② 数据增长上的区别
A). Vector在默认的情况下,自动增长原来一倍的数组长度,
B). ArrayList是原来的50%,
所以, 如果数据量很大,又要线程安全,则使用Vector。
希望我的回答对楼主有用。 |