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)来达到同步的效果

转载于:https://www.cnblogs.com/dp-luo/p/6851766.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值