键值对Map-08

举报
kwan的解忧杂货铺 发表于 2024/08/08 20:54:53 2024/08/08
【摘要】 1.存储 null 值的情况集合类KeyValueSuper说明Hashtable不允许为 null不允许为 nullDictionary线程安全ConcurrentHashMap不允许为 null不允许为 nullAbstractMap分段锁技术TreeMap不允许为 null允许为 nullAbstractMap线程不安全HashMap允许为 null允许为 nullAbstractM...

1.存储 null 值的情况

集合类 Key Value Super 说明
Hashtable 不允许为 null 不允许为 null Dictionary 线程安全
ConcurrentHashMap 不允许为 null 不允许为 null AbstractMap 分段锁技术
TreeMap 不允许为 null 允许为 null AbstractMap 线程不安全
HashMap 允许为 null 允许为 null AbstractMap 线程不安全

2.常用的 Map?

Map

3.讨论下 map 的性能?

image-20220311131517783

前提:IdentityHashMap 不在讨论范围内。数据 100W,机器指标 I3 处理区,4G 内存。单线程环境。

  • Hashtable 和 HashMap 性能差不多, 因为是单线程环境,其实 table 和 map 最显著的区别就是同步问题,没有同步问题,两者的性能区别不是很大, 就像我们经常所说的, Hashtable 会慢一点,因为是同步的.

  • LinkedHashSet,不多说,维护双向顺序链表,肯定会累一点,慢一点。其中插入操作慢的更加显著。

  • TreeMap,红黑树结构的有序 map。 如果对存入的数据顺序没有要求的话,TreeMap 的性能慢的比较显著,因为红黑树需要进行平衡的旋转变色 。况且,多数情况下,HashMap 的存取时间复杂度都是 O(1),红黑树是 O(logn),所以 treemap 慢一点,正常。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。