java常用集合选用指南
Posted dp_luo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java常用集合选用指南相关的知识,希望对你有一定的参考价值。
java集合在选用的时候应该选那个合适?一张表告诉你该怎么选java集合
java集合类 |
是否线程安全 |
是否键值对 |
排序 |
性能 |
元素是否可重复 |
扩容策略 |
|
List接口 |
arraylist |
否 |
否 |
维持存的时候的顺序 |
查询性能高,增删元素性能低 |
是 |
1.5倍扩容,元素大于当前容量的100%时进行扩容 |
linkedlist |
否 |
否 |
有顺序 |
查询性能低,增删元素性能高 |
是 |
||
vector |
是 |
否 |
有顺序 |
低 |
是 |
||
Stack |
是 |
否 |
有顺序,先进后出 |
低 |
是 |
||
Map接口 |
hashmap |
否 |
是 |
不排序 |
快速插入和查找 |
key不可重复,value可重复 |
2倍扩容,元素大于当前容量的75%时进行扩容 |
hashtable |
是 |
是 |
不排序 |
低 |
key不可重复,value可重复 |
||
treeMap |
否 |
是 |
根据key自动排序 |
快速插入和查找 |
key不可重复,value可重复 |
||
Set接口 |
hashset |
否 |
否 |
不排序 |
快速插入和查找 |
否 |
|
treeset |
否 |
否 |
默认升序排序(按照compare to接口返回值) |
快速插入和查找 |
否 |
使用指南:
1 在集合场景明确的情况下,指定初始化容量,因为不指定容量,初始化容量为10,每次扩容都会对底层数组做一次拷贝,消耗性能;
2 所有集合底层存储都是数组,数组可以存放基本类型,集合只能存对象
3 Java.lang.reflect.Array工具提供了对数组的操作;Java.util.collection工具提供了集合的操作
4 HashMap可以通过Map m = Collections.synchronizedMap(hashMap)来达到同步的效果
以上是关于java常用集合选用指南的主要内容,如果未能解决你的问题,请参考以下文章
Java集合 -- Collection体系集合comparable 和 Comparator的区别集合框架底层数据结构总结如何选用集合