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...