vector,arralist,linklist的区别

一: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 方法可以创建不变的集合

猜你喜欢

转载自www.cnblogs.com/hanguocai/p/10011540.html