Java容器总结

List

ArrayList

底层为动态数组,因为它的增加、删除元素与size的变化不是原子操作,所以不是线程安全的

LinkedList

底层为双向链表,实现了List接口和Deque接口。不是线程安全的

Vector

创建了一个向量类的对象后,可以往其中随意插入不同类的对象。线程安全的,synchronized。替代方案:Collections.synchronizedList()

Map

HashMap

底层为哈希表,扩容时机和方式参考哈希表,不是线程安全。
JDK1.8中实现为哈希表+红黑树

LinkedHashMap

底层为哈希表和双向链表,保留元素的插入顺序,不是线程安全

TreeMap

红黑树,有序,非线程安全

Set

HashSet

底层为HashMap,不是线程安全

LinkedHashSet

底层为哈希表和双向链表,不是线程安全

TreeSet

基于TreeMap,不是线程安全

EnumSet

是一个抽象类,非线程安全

HashTable

不允许空键或值,线程安全,synchronized,遗留类,不应该使用

ConcurrentHashMap

HashTable的替代品,synchronized

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值