Vector, ArrayList, LinkedList的区别是什么?
这三个类都实现了java.util.List接口。 ArrayList:动态数组实现的,对于数据的随机Get和Set,或少量数据的插入和删除 效率较高,同时ArrayList线程不安全,可重复。 Vector:使用方法和内部实现基本和ArrayList一样,但是它是线程安全的 LinkedList:链表实现的,插入大量数据的时候效率较高
Vector和ArrayList的底层都是使用数组的方式实现,实现方式相同,插入,删除慢,查询快,不过Vector加了synchronized关键字,所以是线程安全的,ArrayList则是线程不安全的, LinkedList的实现方式的双向链表,插入,删除快,查询慢
都是集合类,LinkedList采用链表加数组数据结构实现,ArrayList则数据结构为数组实现,Vector相较ArrayList,线程安全
1、Vector、ArrayList都是以类似数组的形式存储在内存中,LinkedList则以链表的形式进行存储。
2、List中的元素有序、允许有重复的元素,Set中的元素无序、不允许有重复元素。
3、Vector线程同步,ArrayList、LinkedList线程不同步。
4、LinkedList适合指定位置插入、删除操作,不适合查找;ArrayList、Vector适合查找,不适合指定位置的插入、删除操作。
5、ArrayList在元素填满容器时会自动扩充容器大小的50%,而Vector则是100%,因此ArrayList更节省空间。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。