map集合成員方法
增加功能
v put(k key, v value)
返回的是被覆蓋的值當key在集合中不存在時,新增元素;當key在集合存在時候,替換元素
刪除功能
void clear
清除所有鍵值對資料
v remove(object key)
根據指定的鍵刪除鍵值對
判斷功能
boolean containskey(object key)
判斷指定的鍵是否在集合中存在
boolean containsvalue(object value)
判斷指定的值是否在集合中存在
boolean isempty
判斷集合是否為空
獲取功能
set
> entryset()
鍵值對物件的集合
object get(object key)
根據鍵獲取值
set keyset():
所有鍵的集合
collection values()
所有值的集合
長度 int size()
獲取長度
map集合的兩種遍歷方式
建立map集合
// 建立集合物件
map<
string, string
>
map=
new hashmap<
string, string
>();
// 建立並新增元素
map.put("楊過", "小龍女");
map.put("郭靖", "黃蓉");
map.put("梁山伯", "祝英台");
map.put("牛郎", "織女");
第一種遍歷方式(通過keyset())
set
keyset = map.keyset();
for(string key : keyset)
第二種遍歷方式(通過entryset())
set
> entryset = map.entryset();
for(map.entry
entry : entryset)
hashmap儲存自定義物件實現去重 (將自定義物件儲存到key的位置)
hashmap
自定義物件重寫hashcode()和equals()方法,並且使用hashmap
treemap
方案1:自定義物件實現comparable 介面,並且重寫compareto方法
方案2:建立treemap集合物件時通過treemap的構造方法傳入乙個comparator物件
treemap儲存自定義物件實現排序 (將自定義物件儲存到key的位置
方案1
自定義物件實現comparable 介面,並且重寫compareto方法
方案2
建立treemap集合物件時通過treemap的構造方法傳入乙個comparator物件
hashtable和hashmap區別
hashtable:
執行緒安全,效率低,不允許null鍵和值
hashmap:
執行緒不安全,效率高,允許null鍵和值
如果想執行緒安全,並且可以儲存null怎麼辦,使用concurrenthashmap
|–map(雙列 底層結構是針對鍵有效,跟值無關)
|–hashmap
底層資料結構是雜湊表。
執行緒不安全,效率高。允許null鍵和值
怎麼保證唯一性的呢?
它依賴兩個方法:hashcode()和equals()
順序:
首先判斷hashcode()值是否相同。
同:繼續走equals(),看返回值
如果true:就不新增到集合。
如果false:就新增到集合。
不同:就新增到集合。
|–hashtable
底層資料結構是雜湊表。
執行緒安全,效率低。不允許null鍵和值
怎麼保證唯一性的呢?
它依賴兩個方法:hashcode()和equals()
順序:
首先判斷hashcode()值是否相同。
同:繼續走equals(),看返回值
如果true:就不新增到集合。
如果false:就新增到集合。
不同:就新增到集合。
|–treemap
底層資料結構是二叉樹。
執行緒不安全,效率高。
怎麼保證唯一性的呢?是根據返回是否是0。
怎麼保證排序的呢?兩種方式
自然排序(元素具備比較性)
實現comparable介面
方法:compareto(obj)
比較器排序(集合具備比較性)
實現comparator介面
方法:compare(obj1,obj2)
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集合 前面我們提到過的collection集合以及他的子實現類,這些集合屬於單列集合,而在實際開發中,經常使用到的還有雙列集合map集合。在具體講雙列集合之前,再來回憶一下單列集合。在單列集合中,首先分為list和set兩個集合,而list集合又分為 arraylist,vector,和lin...