Java學習筆記整理 Map

2021-09-23 22:31:34 字數 1314 閱讀 8349

集合:collection

map:鍵值對 key-value對映表(預設

hashmap

hashtable

concurrenthashmap

linkedhashmap

sortedmap(i)->treemap

1.hashmap

mapmap=new hashmap();

//增刪改查

map.put(「hehe」,「123」);//增加,返回被替換的value值

map.put(「hehe」,「1234」);//修改,返回被替換的value值

map.get(「hehe」);//通過key獲取value

map.remove(「hehe」)//通過key刪除 key-remove-返回被刪除的value值

迭代map的三種方式

1.迭代所有key的set檢視

setkeys=map.keyset();

iteratorit=keys.iterator();

while(it.hasnext())

2.獲得value對應的collection(list)檢視

collectioncol=map.values();

for(string str:col)

3.entry:key/name-value鍵值關係

set>set=map.entryset();

for(entryentry:set)

hashmap的底層實現原理:

hash->hashset

hashset就是hashmap的key的部分

treeset就是treemap的key的部分

hashset的儲存過程->hashmap的儲存過程

1.hashcode()計算位置

2.位置上如果沒有元素,直接加入

3.位置上有元素,對比判斷equals()方法比較

a.相等,不新增

b.和位置上的鍊錶每乙個節點判斷不相等,新增到鍊錶末尾

因為鍊錶訪問效率很低,所以盡量使每個位置上

這就要求容量大,但是考慮到空間使用率,容量不能無限大,預設初始容量jdk提供16

後期資料量太大,要擴容,但是不能存滿再擴容

擴容:容量改變,原來集合中的元素複製到新擴容的集合中,要重新計算位置

需要消耗時間,所以不能頻繁擴容

綜合考慮,當集合儲存到75%的時候,進行擴容一倍

結論:hashmap初始容量16

載入因子 0.75

對java中map學習筆記整理

map作為一種非常好用的常見介面有兩個常見的實現類 hashmap與treemap,以及不是很常出現的linkedhashmap 首先他們之間比較明顯的區別為 linkedhashmap可以記錄新增鍵值的順序,根據輸入的順序輸出 treemap能夠對已經錄入的資料進行排序輸出 但在三者之中hashm...

Java學習筆記整理 流

一.randomaccessfile new randomaccessfile file,rw 常用 int read 讀單位元組 int read byte 返回有效長度,讀的內容放入byte陣列 int read byte,off,len 返回有效長度,讀的內容放入byte陣列off位置開始 v...

Java學習 Map介面

map集合 一次新增一對元素 collection一次新增乙個元素 map也稱為雙列集合 collection集合也被稱為單列集合 map集合儲存的是鍵值對 並且必須保證鍵的唯一性 常用方法 1,新增 value put key,value 返回和前乙個key關聯的值,如果沒有則返回null 比如 ...