ArrayList、Vector和LinkedList区别

来源:互联网 发布:360网络修复工具下载 编辑:程序博客网 时间:2024/05/25 01:34

ArrayList和Vector最大的区别是synchronization(同步)的使用,没有一个ArrayList的方法是同步的,而Vector的绝大多数方法都是直接或者间接同步的,所以Vector是线程安全的,ArrayList不是线程安全的。正是由于Vector提供了线程安全的机制,其性质上也要略逊于ArrayList

LinkedList是采用双向列表来是实现的,对数据的索引需要从列表头开始遍历,因此用于随机访问则效率比较低,但是插入元素时不需要对数据进行移动,因此插入效率较高。同时,LinkedList是非线程安全的容器。

在实际使用的时候,如何选择?

当对数据的主要操作为索引或只在集合的末端增加、删除元素时,使用ArrayList或Vector效率比较高;当对数据的操作主要为指定位置的插入或删除操作时,使用LinkedList效率比较高;当在多线程中使用容器时,(即多个线程会同时访问容器时),选用Vector较为安全。

0 0
原创粉丝点击