JDK之Map原始碼解讀 一

2021-09-08 21:27:00 字數 1906 閱讀 7001

目錄

size()

isempty()

containskey(object key)

containsvalue(object value)

get(object key)

put(k key, v value)

remove(object key)

putall(map m)

clear()

keyset()

values()

entryset()

equals(object o)

hashcode()

getordefault(object key, v defaultvalue)

foreach(biconsumer action)

map是乙個介面。裡面儲存的是鍵值對,乙個map中不能包含重複的key,每個key最多只能對應乙個value。

作用:返回鍵值對的個數。

作用:判斷map是否為空,如果不包含任何鍵值對,返回true。

作用:判斷map中是否包含指定的key。

作用:判斷map中是否包含指定的value。

作用:通過指定的key獲取value。

作用:將鍵值對放入map中。

作用:刪除map中指定key對應的鍵值對。

作用:將指定map中所有鍵值對複製到該map中。

作用:清空map中所有鍵值對。

作用:返回map中所有的key,結果封裝在set中。

作用:返回map中所有的value,結果是collection型別。

作用:返回map中所有的鍵值對,結果封裝在set中,set中每乙個元素型別是entry。

其中,entry是map的乙個內部介面,包含以下方法:

//獲取鍵值對中的key

k getkey();

//獲取鍵值對中的value

v getvalue();

//設定鍵值對中的value

v setvalue(v value);

//判斷鍵值對是否等於o

boolean equals(object o);

//鍵值對的hashcode

int hashcode();

//實現基於key的比較器,實際的比較方法需要key的型別k來實現compareto方法

public static , v> comparator> comparingbykey()

實現基於value的比較器,實際的比較方法需要value的型別v來實現compareto方法

public static > comparator> comparingbyvalue()

//實現基於key的比較器,實際的比較方法需要根據指定的比較器cmp的實現

public static comparator> comparingbykey(comparator super k> cmp)

//實現基於value的比較器,實際的比較方法需要根據指定的比較器cmp的實現

public static comparator> comparingbyvalue(comparator super v> cmp)

作用:比較map和指定的物件o是否相等。

作用:返回map的hash code。

作用:獲取map中指定的key對應的value。如果不存在,則返回預設值defaultvalue。

作用:遍歷map,將其中每個鍵值對作為引數傳入到action的accept方法中去執行。

JDK原始碼之Map

1.hashmap hashmap初始化的方式有四種。建立乙個entry陣列,預設初始長度為16,當大於0.75的時候,擴充套件為當前的2倍。有4中初始化map的方式。mapmap new hashmap mapmap2 new hashmap 17 mapmap3 new hashmap 15,2...

JDK之ArrayList原始碼解讀 一

原始碼基於jdb 1.8版本。目錄 建構函式1 建構函式2 建構函式3 contains object o lastindexof object o toarray get int index set int index,e element add e e add int index,e eleme...

JDK之ArrayList原始碼解讀 二

目錄 remove int index remove object o clear addall collection c addall int index,collection c removerange int fromindex,int toindex public e remove int ...