HashMap學習記錄

2021-10-24 07:16:21 字數 1088 閱讀 7118

hashmap繼承abstractmap,實現轉殖,序列化介面

public class hashmapextends abstractmapimplements map, cloneable, serializable 

public final k getkey()

public final v getvalue()

public final string tostring()

public final int hashcode()

public final v setvalue(v newvalue)

public final boolean equals(object o)

return false;

}}

hashmap的hash方法,key 的hashcode值高16位和低16位做異或操作,保證高低位都參與運算

static final int hash(object key)
tablesizefor函式確保容量是2的冪 返回乙個大於輸入引數且最小的為2的n次冪的數

static final int tablesizefor(int cap)
hashmap的get方法  返回getnode方法,引數有hash(key)和key

public v get(object key)
在getnode方法中,首先確保table不為null 長度大於0並且所在的table[i]不為null,首先檢查第乙個點是否是尋找的點,如果不是的話並且.next不為null 如果是樹結點按照樹的方式查詢 否則do迴圈查詢結點

final nodegetnode(int hash, object key)  while ((e = e.next) != null);}}

return null;

}

在containskey方法中

public boolean containskey(object key)

關於HashMap的學習記錄

目錄 1.說說你對hash演算法的理解。追問 hash演算法任意長度的輸入 轉化為了 固定長度的輸出,會不會有問題呢?追問 hash衝突能避免麼?2.你認為好的hash演算法,應該考慮點有哪些呢?3.hashmap中儲存資料的結構是什麼樣的呢?4.建立hashmap時,不指定雜湊表陣列長度,初始長度...

簡單錯誤記錄 HashMap

開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的 所在的檔名稱和行號。處理 1 記錄最多8條錯誤記錄,迴圈記錄,最後只用輸出最後出現的八條錯誤記錄。對相同的錯誤記錄只記錄一條,但是錯誤計數增加。最後乙個斜槓後面的帶字尾名的部分 保留最後16位 和行號完全匹配的記錄才做算是 相同 的錯誤記錄。2 超過1...

HashMap學習小記

public class hashmaptest public static void main string args hashmap允許乙個存入的鍵為null,允許多個值為null。hashmap 的輸出不是按新增的順序進行輸出的。輸出是無序的。hashmap儲存資料首先獲取key的hashco...