美文网首页
ArrayList,Vector,LinkedList区别

ArrayList,Vector,LinkedList区别

作者: 建瓯 | 来源:发表于2019-03-27 15:00 被阅读0次

共同点

都实现了集合框架中List接口,有序集合,存取有序,有索引,元素可重复,具体功能比较相似,都实现了增删改查功能,都提供了迭代器遍历内容


区别


存储结构

ArrayList和Vector内部是数组实现的,删除元素后,需要移动元素位置,初始化容量为10;

LinkedList 是基于双向链表实现的,包含头节点。

线程安全性

ArrayList,LinkedList是线程不安全的,如果要再并发环境下使用它们,可以用Coolections的静态synchronizedList对ArrayList和LinkedList进行调用;

Vector是线程安全的,它的大部分方法都包含了synchronized关键字,所以它的效率低于ArrayList和LinkedList。

扩容机制

ArrayList和Vector可以自动扩容,ArrayList扩容之后容量是原来的1.5倍;Vector扩容之后容量是原来容量的2倍;

Vector 可以指定扩容增量,ArrangList不能指定;

扩容方法都是创建新的数组,将旧的数据拷贝到新数组中,将新元素添加到新数组中

增删查效率

ArrayList和Vector 检索和末尾删除和添加元素,时间复杂度为O(1),指定位置插入和删除元素时间复杂度为O(n)

LinkedList 查询元素复杂度为O(n),插入和删除时间复杂度为O(1)

相关文章

网友评论

      本文标题:ArrayList,Vector,LinkedList区别

      本文链接:https://www.haomeiwen.com/subject/wwpzvqtx.html