目錄
一、Map集合的特點
接口Map<K,V>中,K
- 此映射所維護的鍵的類型,V
- 映射值的類型,其中K是唯一的,Set接口與Map接口特點基本類似,HashSet的其他操作都是基於HashMap的,HashSet只有鍵K,也是保證唯一性,Set是無序的,Map的實現類也是無序的。
二、Map集合的功能
1.添加功能:V put<K,V>,這個返回值有點特殊
Map<String,String> map = new HashMap<String,String>();
//添加函數 V put(K,V),這個返回值是老值,如下第一個沒有老值(第一次存儲),返回爲空
//第二個老值是橘子,就返回橘子,並把老值替換掉
String str = map.put("酸的","橘子");
System.out.println(str);
String str1 = map.put("酸的","檸檬");
System.out.println(str1);
輸出:
null
橘子
2.移除功能:
//移除所有鍵值對
//map.clear();
//移除指定鍵值對,存在返回值,不存在返回null
System.out.println(map.remove("酸的"));
輸出:
檸檬
3. 判斷功能:返回值是:boolean
map.put("甜的","蘋果");
map.put("苦的","苦瓜");
map.put("辣的","辣椒");
//判斷集合是否有指定鍵
System.out.println(map.containsKey("苦的"));
//判斷集合是否有指定值
System.out.println(map.containsValue("辣椒"));
//判斷集合是否爲空
System.out.println(map.isEmpty());
輸出:
true
true
false
4. 獲取功能:
//集合長度
System.out.println(map.size());
//輸出map集合,無序的(鍵如Set一樣)
System.out.println("map:"+map);
//獲取功能
//通過鍵獲取值
System.out.println(map.get("甜的"));
//獲取所有鍵
Set<String> s = map.keySet();
System.out.println(s);
//獲取所有值
Collection<String> c = map.values();
System.out.println(c);
輸出:
3
map:{辣的=辣椒, 甜的=蘋果, 苦的=苦瓜}
蘋果
[辣的, 甜的, 苦的]
[辣椒, 蘋果, 苦瓜]
5.遍歷Map
分爲兩種方式:
方式一:
//1.
//A:獲取所有的鍵
//B:遍歷鍵的集合,獲取得到每一個鍵
//C:根據鍵去找值
Set<String> sk = map.keySet();
for(String a : sk){
System.out.println(a+"---");
System.out.println(map.get(a));
}
方式二:這個方法用到同時獲取鍵和值Set<Map.Entry<K,V>> entrySet(),此方法返回一個Set對象,裏面類型是Map.Entry<String,String>.
/2.
//A:根據鍵值對對象找鍵和值
//B:獲取所有鍵值對對象的集合
//C:遍歷鍵值對對象的集合,獲取到每一個鍵值對對象了
//D:根據鍵值對對象找鍵和值
Set<Map.Entry<String,String>> sem = map.entrySet();
for(Map.Entry<String,String> m : sem){
System.out.println(m.getKey());
System.out.println(m.getValue());
System.out.println(m);
}