HashMap总结与比较

总结

上一篇文章讲了一些我理解的HashMap,这里我们总结概括一下,包括和其他集合的比较

1.HashMap特点

  • 底层是散列表+红黑树。初始容量为16,装载因子为0.75,每次扩容2倍
  • 允许为null,存储无序
  • 非同步,也就是说是线程不安全的
  • 散列表容量大于64且链表大于8时,转成红黑树
  • Key的哈希值会与该值的高16位做异或操作,进一步增加随机性
  • 当散列表的元素大于容量*装载因子时,会再散列,每次扩容2倍
  • 如果hashCode相同,key不同则替换元素,否则就是散列冲突

2.与ConcurrentHashMap比较

  • 底层是散列表+红黑树,支持高并发操作
  • key和value都不能为null
  • 线程是安全的,利用CAS算法和部分操作上锁实现
  • get方法是非阻塞,无锁的。重写Node类,通过volatile修饰next来实现每次获取都是最新设置的值
  • 在高并发环境下,统计数据(计算size…等等)其实是无意义的,因为在下一时刻size值就变化了。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 HashMap HashMap类继承图 HashMap属性 HashMap构造函数HashMap(int i...
    HikariCP阅读 5,854评论 0 5
  • 前言 这次我和大家一起学习HashMap,HashMap我们在工作中经常会使用,而且面试中也很频繁会问到,因为它里...
    liangzzz阅读 12,416评论 7 102
  • 秋夜 想你 独自飘零的落叶 秋夜 习风 拍打呢喃的门窗 秋夜 温暖 两颗心的小窝
    辰勾7阅读 847评论 0 0
  • 推窗而望,花开如海,满园春色尽收眼底……沉思片刻,真的春华秋实?此乃假言命题也!人生与自然同理。
    竹园书客阅读 858评论 0 0
  • □ 什么叫[厚颜无耻]我不认为为自己捞利益是[厚颜无耻]比方说我不认为想得到房产是[厚颜无耻]我不认为晚年重新安排...
    乞qg丐阅读 3,947评论 0 0