map集合
前面我們提到過的collection集合以及他的子實現類,這些集合屬於單列集合,而在實際開發中,經常使用到的還有雙列集合map集合。
在具體講雙列集合之前,再來回憶一下單列集合。在單列集合中,首先分為list和set兩個集合,而list集合又分為
arraylist,vector,和linkdlist子實現類,set分為hashset、linkedhashset和treeset。而list和set的區別在於,list集合是有序的,而且元素可以重複,set集合是無序的,元素唯一。
雙列集合顧名思義就是儲存了兩個值,而這兩個值通常被稱為鍵值對。例如:乙個人的名字對應他的年齡,這就是乙個鍵值對。map同collection一樣也是作為雙列集合的根集合,下面有三個子類,hashmap、linkedhashmap和treemap。同單列集合一樣,hashmap是無序的,要是是自定義物件需要重寫hashcode和equals方法保證他的唯一性;linkedhashmap是有序的,這裡的有序指的是元素存入和取出的順序一致;而treemap不僅是有序的,因為其底層的紅黑樹結構,它可以根據鍵值的大小進行排序。而集合的這些特點都是和其底層結構有關。
hashmap底層資料結構是雜湊表,所以其特點是元素無序且唯一(自定義物件需要重寫hashcode和equals方法保證他的唯一性)
linkedhashmap底層資料結構是鍊錶和雜湊表,而鍊錶保證了元的有序性
treemap底層資料結構是紅黑樹,可以對元素進行排序
可以看出,單列集合的set集合的特性以及子實現類和map集合具有很多共同點,而在前面我們也提到過set集合最後是依賴於map集合實現的,所以,在對單列集合有所了解之後,再理解map集合應該不會很難。
先給出乙個map集合物件的構造:
maphm = new hashmap();
因為map集合也是乙個介面,所以利用抽象類多型實現物件的建立,其中的string泛型指的就是鍵,student泛型指的就是值,通常統稱為乙個鍵值對。
需要注意的是:map集合的資料結構之和鍵有關,和值無關。
在建立物件之後,就可以利用map中的成員方法來實現對物件的操作,這裡就先提到乙個方法,put(key,value)方法,這和單列集合中的add方法功能一樣,就是給集合新增元素的。例如:hm.put("s001", new student("張三", 23));
這裡來講一下map集合的遍歷,先給出乙個單列集合的遍歷方式:for(student s : hs)
這是乙個單列集合遍歷的例子,hs是乙個單列集合物件,而對於雙列集合的遍歷,由兩種方式
1)setkeyset = hm.keyset();
for (string key : keyset)
首先得到乙個鍵的set集合,然後結合get方法獲取鍵對應的值完成遍歷
2)set> entryset = hm.entryset();
for (entryen : entryset)
首先得到乙個鍵值對物件的set集合,然後通過
entryset中的getkey()和getvalue()完成遍歷。
注意,在遍歷之前首先獲得乙個set集合,然後再進行遍歷。
最後給出map集合中常用的成員方法:
size獲取集合的長度;isempty判斷集合是否為空;containskey(key)判斷集合是否有此鍵;containsvalue(value)判斷集合是否有這個值;remove(key)根據鍵移除一對鍵值對。
Map集合 雙列集合
map集合 雙列集合 map集合是鍵值對集合。它的元素是由兩個值組成的,元素的格式是 key value.map集合形式 map集合系列 map 介面 hashmap 實現類 linkedhashmap 注意 map集合只支援引用資料型別的元素儲存。map集合特點 鍵是無序不重複的。重複的鍵,後面加...
集合專題 雙列集合Map
一 map集合的常用方法 增和改put,刪除remove 查詢get 01.獲取鍵集put k key,v value hashmap string,integer map new hashmap map.put 李晨 28 map.put 王寶強 27 map.put 宋哲 18 map.put ...
java日常學習 map雙列集合
雙列集合的體系 map 實現了map介面的集合類具備的特點 儲存的資料都是以鍵值對的形式存在的,鍵 key 不能重複,值 value 可以重複 hashmap treemap hashtable 了解 map介面的方法 增put k key,v value 新增元素到map集合,以前與 key 關聯...