最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中HashMap里面key為null存放到哪

 更新時間:2021年02月02日 11:35:10   作者:馬丁半只瞄  
這篇文章主要介紹了Java中HashMap里面key為null存放到哪,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

我們知道HashMap集合是允許存放null值的

hashMap是根據(jù)key的hashCode來尋找存放位置的,那當key為null時, 怎么存儲呢?

在put方法里頭,其實第一行就處理了key=null的情況。

// HashMap的put方法
 public V put(K key, V value) {
    if (table == EMPTY_TABLE) {
      inflateTable(threshold);
    }
    if (key == null)
       // key為null調(diào)用putForNullKey(value)
       return putForNullKey(value);
    int hash = hash(key);
    int i = indexFor(hash, table.length);
    for (Entry<K,V> e = table[i]; e != null; e = e.next) {
      Object k;
      if (e.hash == hash && ((k = e.key) == key || key.equals(k))) {
        V oldValue = e.value;
        e.value = value;
        e.recordAccess(this);
        return oldValue;
      }
    }
 
    modCount++;
    addEntry(hash, key, value, i);
    return null;
  }
 /**
   * Offloaded version of put for null keys
   */
  private V putForNullKey(V value) {
    for (Entry<K,V> e = table[0]; e != null; e = e.next) {
      if (e.key == null) {
        V oldValue = e.value;
        e.value = value;
        e.recordAccess(this);
        return oldValue;
      }
    }
    modCount++;
    addEntry(0, null, value, 0);
    return null;
  }

當HashMap的put方法,第二個判斷就是key為null的判斷后進入putForNullKey(V value)這個方法

可以看到,前面那個for循環(huán),是在talbe[0]鏈表中查找key為null的元素,如果找到,則將value重新賦值給這個元素的value,并返回原來的value。

如果上面for循環(huán)沒找到則將這個元素添加到talbe[0]鏈表的表頭。

到此這篇關于Java中HashMap里面key為null存放到哪 的文章就介紹到這了,更多相關HashMap key為null內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 簡單談談RxJava和多線程并發(fā)

    簡單談談RxJava和多線程并發(fā)

    認識RxJava已經(jīng)有一段時間了,但是一直沒有機會在項目中嘗試,最近在新的項目里引進了RxJava寫一些事件處理,在review代碼的時候發(fā)現(xiàn)了一些和多線程并發(fā)相關的問題,所以寫了這篇文章,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • 解決@Api注解不展示controller內(nèi)容的問題

    解決@Api注解不展示controller內(nèi)容的問題

    這篇文章主要介紹了解決@Api注解不展示controller內(nèi)容的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教。
    2022-01-01
  • Java中數(shù)組容器(ArrayList)設的計與實現(xiàn)

    Java中數(shù)組容器(ArrayList)設的計與實現(xiàn)

    本篇文章主要跟大家介紹我們最常使用的一種容器ArrayList、Vector的原理,并且自己使用Java實現(xiàn)自己的數(shù)組容器MyArrayList,讓自己寫的容器能像ArrayList那樣工作,感興趣的可以了解一下
    2022-07-07
  • Spring?Boot+Vue實現(xiàn)Socket通知推送的完整步驟

    Spring?Boot+Vue實現(xiàn)Socket通知推送的完整步驟

    最近工作中涉及消息通知功能的開發(fā),所以下面這篇文章主要給大家介紹了關于Spring?Boot+Vue實現(xiàn)Socket通知推送的完整步驟,文中通過實例代碼以及圖文介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • JAVA容器集合全面解析(Collection和Map)

    JAVA容器集合全面解析(Collection和Map)

    這篇文章主要介紹了JAVA容器集合全面解析(Collection和Map)本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • SpringMvc入門指南(必看)

    SpringMvc入門指南(必看)

    下面小編就為大家?guī)硪黄猄pringMvc入門指南(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • java 導入Excel思路及代碼示例

    java 導入Excel思路及代碼示例

    這篇文章主要介紹了java 導入Excel思路及代碼示例,簡要分析了設計思路,然后分享了實例代碼,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • SpringBoot項目啟動錯誤:找不到或無法加載主類的三種解決方法

    SpringBoot項目啟動錯誤:找不到或無法加載主類的三種解決方法

    在開發(fā)SpringBoot應用時,經(jīng)常可能會遇到一個啟動錯誤:“錯誤:找不到或無法加載主類 com.example.controller.demo.DemoApplication”,本文將介紹三種解決這一問題的方法,需要的朋友可以參考下
    2024-10-10
  • Java接口RandomAccess全面了解

    Java接口RandomAccess全面了解

    下面小編就為大家?guī)硪黄狫ava接口RandomAccess全面了解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • 使用Java對Hbase操作總結及示例代碼

    使用Java對Hbase操作總結及示例代碼

    這篇文章主要介紹了使用Java對Hbase進行操作總結,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07

最新評論

仲巴县| 永福县| 连平县| 宜章县| 苏州市| 安陆市| 溧阳市| 郴州市| 滕州市| 博客| 莒南县| 玉山县| 安西县| 金坛市| 陇川县| 隆子县| 威信县| 伽师县| 准格尔旗| 孙吴县| 万安县| 观塘区| 阳泉市| 双流县| 周口市| 汤阴县| 西充县| 崇信县| 天柱县| 阆中市| 兰坪| 微博| 瓦房店市| 天门市| 胶州市| 乳山市| 太白县| 许昌市| 揭西县| 扬州市| 兰溪市|