hash bucket,據(jù)說是一個單向鏈表,可不可以說是一個棧?HashMap::get() 可以獲取 bucket 里面的第一個元素,那其它元素又怎么獲取?HashMap::size() 是返回 bucket 的個數(shù)還是長度大于 0 的 bucket 的個數(shù)?
1 回答

慕姐4208626
TA貢獻1852條經(jīng)驗 獲得超7個贊
是一個單向鏈表,不是棧,棧和鏈表區(qū)別很大。
get
是取得和你 key 匹配的那個 value。bucket 鏈表里面存儲的是 hash 值相同的(key,value)
對,比如 key1 和 key2 計算得到的 hash 值相同,那么就把他們?nèi)拥揭粋€bucket里面,當你get(key1)
時,那么遍歷對應(yīng)的 bucket 鏈表,直到找到對應(yīng)的 key1,返回 value1.size()
是所有元素的個數(shù),而不是 bucket 的個數(shù)。
你可以去看下 HashMap 的實現(xiàn),比如 JDK 里面的,就很清楚了。
添加回答
舉報
0/150
提交
取消