Java集合源码学习(五)几种常用集合类的比较

  1. 云栖社区>
  2. 博客>
  3. 正文

Java集合源码学习(五)几种常用集合类的比较

邴越 2016-05-05 16:05:51 浏览1771
展开阅读全文

这篇笔记对几个常用的集合实现,从效率,线程安全和应用场景进行综合比较。

1.ArrayList、LinkedList与Vector的对比

(1)相同和不同
都实现了List接口,使用类似。
Vector和ArrayList的底层实现都是数组,这一点与LinkedList的双向链表不同。
Vector和ArrayList在更多元素添加进来时会请求更大的空间。Vector每次请求其大小的双倍空间,而ArrayList每次对size增长50%。
(2)线程安全
ArrayList、LinkedList都没有进行同步,可以使用 Collections的同步方法进行包装。

(3)性能比较
在ArrayList和Vector中,从一个指定的位置(通过索引)查找数据或是在集合的末尾增加、移除一个元素所花费的时间是一样的,这个时间我们用O(1)表示。但是














网友评论

登录后评论
0/500
评论
邴越
+ 关注