知識點 HashMap方法及方法描述!

2021-10-10 13:57:33 字數 1937 閱讀 5162

hashmap方法

方法描述

public int size()

map中鍵值的數量:

public boolean isempty()

判斷map中是否包含元素,如有沒有,則返回true,否則返回false

public v get(object key)

根據鍵去獲取值,每個鍵下面都有4種情況null、entry、linked list、tree

public boolean containkey(object key)

判斷鍵值集合中是否存在這樣的鍵,如果存在,則返回true

public v put(k key, v value)

將引數的鍵和值,以鍵值對的方式

public void putall(map <? extends k, ? extends v> m)

一次性將引數的鍵值集合存放到當前的介面中

public v remove(object key)

根據鍵去刪除

public void clear()

清空所有關係方式

public boolean containsvalue(object value)

當前鍵值對的集合中是否包含引數值

public set keyset()

返回鍵的set集合

public collection values()

返回map中的值的collection檢視

public set> entryset()

返回鍵的set集合

public v getordefault(object key, v defaultvalue)

根據key去查詢值,若存在,則返回鍵對應的值,若不存在,則返回預設值引數2

public v putifabsent(k key, v value)

如果對應的鍵不存在,則將鍵的值存到集合中,並返回,如果鍵值存在,則返回鍵對應的值

public boolean remove(object key, object value)

僅當指定的金鑰當前對映到指定的值時刪除該條目

public boolean replace(k key, v oldvalue, v newvalue)

如果集合中存在鍵和引數1匹配,該鍵對應的值和引數2匹配,則引數3的值去覆蓋前兩者匹配到entry的值oldvalue-預期與指定鍵相關聯的值newvalue-與指定鍵相關聯的值

public v replace(k key, v value)

根據鍵去匹配鍵值對當中的鍵值,匹配上,則用引數2的值去覆蓋v,並將被覆蓋的值引用返回

如果指定的鍵尚未與值相關聯(或對映到null),則嘗試使用給定的對映函式計算其值,並將其輸入到此對映中,除非null

如果指定的金鑰的值存在且非空,則嘗試計算給定金鑰及其當前對映值的新對映

嘗試計算用於指定鍵和其當前對映的值的對映(或null如果沒有當前對映)

如果指定的鍵尚未與值相關聯或與null相關聯,則將其與給定的非空值相關聯。 否則,將關聯值替換為給定重對映函式的結果,如果結果為null 。 當組合鍵的多個對映值時,該方法可能是有用的

public void foreach(biconsumer<? super k,? super v> action)

對此對映中的每個條目執行給定的操作,直到所有條目都被處理或操作引發異常。 除非實現類另有指定,否則按照進入設定迭代的順序執行操作(如果指定了迭代順序)。操作引發的異常被**給呼叫者

public void replaceall(bifunction<? super k,? super v,? extends v> function)

將每個條目的值替換為對該條目呼叫給定函式的結果,直到所有條目都被處理或該函式丟擲異常。 函式丟擲的異常被**給呼叫者

public object clone()

返回此 hashmap例項的淺拷貝:鍵和值本身不被轉殖

hashmap知識點小結

1.hashmap是基於hash表的map介面實現 2.hashmap底層採用的是entry陣列和鍊錶實現的 3.hashmap採用鍵值隊 key,value 結構,其中 key不可重複,可以為null,value的值可以重複。4.hashmap為執行緒不安全,無synchronized修飾 5.h...

hashMap關鍵知識點

1 資料結構 jdk1.7是陣列加鍊表,jdk1.8是陣列加鍊表加紅黑樹 鍊錶太長了查詢也慢,所以鍊錶長度超過8時就使用紅黑樹咯 2 hashmap的初始化大小 1 不給長度時,預設初始化為16,建立map時盡量給個長度,防止不斷擴容影響效率。2 大小為2的n次冪時,雜湊得比較均勻,那麼查詢就比較快...

HashMap面試知識點

答案 2個put會同時擴容造成死迴圈 鍊錶有環 可能有2個同時put,導致1個丟失,被後面的put覆蓋了。一種情況是2個執行緒,1存1取,a剛存完key1value1,還沒等b取值,a又存完key1value2,這樣b取值只能取得key1value2,key1value1就丟失了 答案 當hashm...