List、Set、Map常用类区别与联系

List
有序 collection
允许重复元素
允许null元素
ArrayList
有序 collection(内部通过数组实现)
允许重复元素
允许null元素
非同步
Vector
有序 collection(内部通过数组实现)
允许重复元素
允许null元素
同步
LinkedList
有序 collection(内部通过双向链表实现)
允许重复元素
允许null元素
非同步

Set
最多包含一个 null 元素
不包含重复元素的 collection(更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2)
HashSet
最多包含一个 null 元素
不包含重复元素的 collection(更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2)
不保证 set 的迭代顺(特别是它不保证该顺序恒久不变)
非同步
LinkedHashSet
最多包含一个 null 元素
不包含重复元素的 collection(更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2)
可预知迭代顺序(维护着一个运行于所有条目的双重链接列表,此链接列表定义了迭代顺序,即按照将元素插入到 set 中的顺序)
非同步
TreeSet
不允许包含 null 元素
不包含重复元素的 collection(更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2)
自然顺序进行排序
非同步

Map
键值对
HashMap
允许将 null 用作值或键(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)
不保证映射的顺序,特别是它不保证该顺序恒久不变
非同步
LinkedHashMap
允许将 null 用作值或键
具有可预知的迭代顺序(维护着一个运行于所有条目的双重链接列表,此链接列表定义了迭代顺序,该迭代顺序通常就是将键插入到映射中的顺序)
非同步
ConcurrentHashMap
不允许将 null 用作键或值
不保证映射的顺序,特别是它不保证该顺序恒久不变
支持获取的完全并发和更新的所期望可调整并发的哈希表
同步(桶Lock锁)
TreeMap
仅允许将 null 用作值,但不允许其作为键
自然顺序进行排序(基于红黑树的 NavigableMap 实现)
非同步
Hashtable
不允许将 null 用作值或键
不保证映射的顺序
同步(整个hash表锁)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值