Arrylist、linkelist、vector之间的区别

原创
2015/10/23 16:38
阅读数 851


ArrayList,LinkedList是不同步的,而Vector是同步的,Vector适合线程使用,

ArrayList和Vector都是使用Objec的数组形式来存储的,当元素数目超出其长度时,Vector缺省情况下自动增长原来一倍的数组长度,ArrayList是原来的50%,


ArrayList和LinkedList的大致区别:
     1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
     2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
     3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。


ArrayList,在末尾增加或删除一条数据,所花的开销都是固定的,若在中间插入或删除一个元素意味着这个列表中剩余的元素都会被移动,花费大,

LinkedList 是通过指针移动,所以在前后,中间插入删除都是一样的。但LinkedList不 支持高效的随机元素访问。


可以这样说:当操作是在一列 数据的后面添加数据而不是在前面或中间,并且需要随机地访问其中的元素时,使用ArrayList会提供比较好的性能;当你的操作是在一列数据的前面或中 间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用LinkedList了。

所以,如果只是查找特定位置的元素或只在集合的末端增加、移除元素,那么使用Vector或ArrayList都可以。如果是对其它指定位置的插入、删除操作,最好选择LinkedList    

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
7 收藏
0
分享
返回顶部
顶部