一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - Java中HashMap里面key為null存放到哪

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

2021-08-02 11:29馬丁半只瞄 Java教程

這篇文章主要介紹了Java中HashMap里面key為null存放到哪,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

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

hashMap是根據(jù)key的hashCode來(lái)尋找存放位置的,那當(dāng)key為null時(shí), 怎么存儲(chǔ)呢?

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 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;
  }
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
  * 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;
 }

當(dāng)HashMap的put方法,第二個(gè)判斷就是key為null的判斷后進(jìn)入putForNullKey(V value)這個(gè)方法

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

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

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

原文鏈接:https://blog.csdn.net/fenglongmiao/article/details/79656198

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国内久久久 | 精品国产免费第一区二区三区日韩 | 色吧五月婷婷 | 欧美日韩高清完整版在线观看免费 | 四虎最新免费观看网址 | dyav午夜片 | 91精品国产高清久久久久久91 | 奶茶视频官网免费 | 99青青青精品视频在线 | 无遮无挡免费视频 | 亚洲 色 欧美 爱 视频 日韩 | 狐媚小说 | 四虎综合九九色九九综合色 | 黑人艹逼| 四虎影在线永久免费观看 | 国产卡一卡二卡三乱码手机 | 日本视频在线免费观看 | 免费亚洲视频在线观看 | 亚洲男人天 | 91李宗精品72集在线观看 | 挺进白嫩老师下面视频 | 暖暖中国免费观看高清完整版 | 黑人粗长巨茎小说 | 国产午夜不卡 | 国产大神91一区二区三区 | 村上里沙40分钟在线观看 | 成人激情 | 无遮挡h肉动漫在线观看电车 | 色综合久久六月婷婷中文字幕 | 污漫日本E同人 | 99久久香蕉 | 男女性刺激爽爽免费视频 | 大胸纲手被羞羞漫画网站 | 无套大战白嫩乌克兰美女 | 成年人福利视频 | 欧美日韩国产一区二区三区欧 | 爽爽影院免费观看 | 日韩精品高清自在线 | 午夜影院0606 | 精品卡1卡2卡三卡免费网站 | 免费一级夫妻a |