深入理解HashMap与Hash算法

  • HashMap的数据结构
    • JDK1.7及之前HashMap底层是数组和链表
    • JDK1.8及以后HashMap底层是数组和链表以及红黑树
  • JDK1.8什么时候链表会转化成红黑树?
    HashMap在元素比较少的时候,也只会有数组+链表的结构。当链表的长度大于8,HashMap可能会做树化(链表转变成红黑树),不过就是需要再满足一个条件,就是数组长度必须大于等手64)(默认是16经过两次扩容<*2>),链表才会转变为红黑树。否则,只会触发数组的扩容。
  • 为什么HashMap要把hashcode做一个运算改进?
    • 让计算出来的数组下标更加分散
posted @   摘星丶仙  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示