码迷,mamicode.com
首页 > 其他好文 > 详细

vector,arralist,linklist的区别

时间:2018-11-24 14:34:05      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:一半   比较   treeset   遍历   对象   引入   归并   queue   支持   

一:arraylist扩容是扩容一半,vector是扩容一倍

二:linklist是双向列表

三:arraylist适合随机访问的情况,除了在尾部删除,插入外,其他情况的插入删除性能都比较慢,linklist随机访问比较慢

四:技术分享图片

五:queue/deque是一种先入先出,后入先出的数据结构,hashset 的实现是hashmap,treeset的实现是treemap

六:treeset是支持自然顺序,插入,删除慢,logn,hashset是无序唯一,插入,删除时常数级别,linkedHashSet是按照插入顺序排序,插入,删除是常数级别,比hashset慢,需要维护引用,他们的的遍历性能受容量的影响。

七:它们不是线程安全的。可以用Collections.sycronize变成线程安全的。

八:array.sort 和collection.sort可以排序,对于基本类型使用双轴快速排序,对于对象类型使用归并,插入二分排序

九:java 9引入了list.of   set.of 方法可以创建不变的集合

 

vector,arralist,linklist的区别

标签:一半   比较   treeset   遍历   对象   引入   归并   queue   支持   

原文地址:https://www.cnblogs.com/hanguocai/p/10011540.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!