HashMap中通過key獲取value原始碼剖析

2021-08-22 13:35:39 字數 853 閱讀 7049

public v get(object key) 

private v getfornullkey()

for (entrye = table[0]; e != null; e = e.next)

return null;

}

這段**我大致是這麼理解的,首先傳遞乙個key過來,判斷這個key是否存在,如果key為null,會走getfornullkey方法,getfornullkey進來之後會繼續判斷他的長度是否為0,如果為0的情況那麼會反回空到控制台, 否者會獲取table[0]上面的entry,然後會返回entry上面key為null的value到控制台;  

final entrygetentry(object key) 

int hash = (key == null) ? 0 : hash(key);

for (entrye = table[indexfor(hash, table.length)];

e != null;

e = e.next)

return null;

}

這段**大致意思是,如果key不等於null,會根據這個key的雜湊值,再到table陣列裡面找到對應的下標,獲取entry;下面的e = e.next;我理解的意思是如果發生了雜湊碰撞,那麼乙個位置可能會存在多個entry,那麼多個entry的雜湊值肯定是相同.然後自定義了乙個object k 變數;下面先把entry.key賦值給了k;再與傳遞過來的key進行的對比,如果相等的話就會返回entry;返回的entry從新回到了get()方法中,然後就可以通過這個entry.getvalue()獲取到他的value值返回到控制台了.

C map通過key獲取value

一般是value map key 或者另一種迭代器的方式 1 在map中,由key查詢value時,首先要判斷map中是否包含key。2 如果不檢查,直接返回map key 可能會出現意想不到的行為。如果map包含key,沒有問題,如果map不包含key,使用下標有乙個危險的 會在map中插入乙個k...

C map通過key獲取value

c 的map中通過key獲取value的方法 一般是value map key 或者另一種迭代器的方式 1 在map中,由key查詢value時,首先要判斷map中是否包含key。2 如果不檢查,直接返回map key 可能會出現意想不到的行為。如果map包含key,沒有問題,如果map不包含key...

通過Value獲取JSON中對應的KEY

public static string read string txtname,string apiname string json 建立輸入流,讀取excel inputstream is new fileinputstream filename.getabsolutepath jxl提供的wo...