欧洲杯俄罗斯vs 比利时直播

admin · 2022-03-01

  

  HashMap 是应用频率最高的数据范例之一,同时也是口试必问的题目之一,更加是它的底层达成道理,既是常睹的口试题又是分析 HashMap 的基石,以是要紧水准不问可知。

   HashMap 底层达成

  HashMap 正在 JDK 1.7 和 JDK 1.8 的底层达成是不雷同的,正在 JDK 1.7 中,HashMap 应用的是数组 + 链抒发成的,而 JDK 1.8 中应用的是数组 + 链外或红黑树达成的。HashMap 正在 JDK 1.7 中的达成如下图所示:

  

  HashMap 正在 JDK 1.8 中的达成如下图所示:

  

  咱们本文核心来练习主流版本 JDK 1.8 中的 HashMap。HashMap 中每一个元素称之为一个哈希桶(bucket),哈希桶包罗的实质有 4 个:

   hash 值 key value next(下一个节点) HashMap 拔出流程

  HashMap 元素新增的达成源码如下(下文源码都是基于主流版本 JDK 1.8):

  

publicVput(Kkey,Vvalue){//对key停止哈希操纵returnputVal(hash(key),key,value,false,true);}finalVputVal(inthash,Kkey,Vvalue,booleanonlyIfAbsent,booleanevict){Node<K,V>[]tab;Node<K,V>p;intn,i;//哈希外为空则创修外if((tab=table)==null

文章推荐:

2022 年中国人工智能行业发展现状与市场规模分析 市场规模超 3000 亿元

该来的总要来! 切尔西老板将彻底退出英国市场

雷神黑武士四代开售:i7搭RTX3060不到9千元

智慧城市中 5G 和物联网的未来