一、概述:
-
Interface Map<K,V> k:鍵的型別;V:值的型別
-
將鍵映射到值的物件;不能包含重復的鍵;每個鍵可以映射到最多一個值
二、創建Map集合的物件方式
1.使用多型的方式
2.具體實作類HashMap
public static void main(String[] args) {
//創建Map集合物件
Map<String,String> m=new HashMap<String,String>();
//添加元素使用put方法,默認自然排序
m.put("02","李四");
m.put("04","趙六");
m.put("01","張三");
m.put("03","王五");
System.out.println(m);
}
}
三、Map集合的常用方法
| 方法名 | 說明 |
|---|---|
| V put(K key,V value) | 添加元素,添加重復鍵值元素會覆寫 |
| V remove(Object key) | 根據鍵洗掉鍵值對元素 |
| void clear() | 清除所有的鍵值對元素 |
| Boolean containsKey(Object key) | 判斷集合是否包含指定的鍵,包含回傳true |
| Boolean containsValue(Object value) | 判斷集合是否包含指定的值,包含回傳true |
| Boolean isEmpty() | 判斷集合是否為空 |
| int size() | 獲取集合的長度,也就是鍵值對的個數 |
public class MapDemo01 {
public static void main(String[] args) {
//創建Map集合物件
Map<String,String> m=new HashMap<String,String>();
//添加元素,put方法
m.put("1","張三");
m.put("2","李四");
m.put("3","王五");
m.put("4","趙六");
// System.out.println(m);
//根據鍵洗掉鍵值對元素
System.out.println(m.remove("3"));//切記鍵是什么型別就寫什么型別,不然會回傳null
System.out.println(m);
//清除所有鍵值對元素
m.clear();
//Boolean isEmpty()判斷集合是否為空
System.out.println(m.isEmpty());
// System.out.println(m);
//Boolean containsKey(Object key);判斷集合中是否包含指定的鍵
System.out.println(m.containsKey("5"));//切記鍵是什么型別就寫什么型別,不然會回傳null
//Boolean containsValue(Object value)判斷集合是否包含指定的值,包含回傳true
System.out.println(m.containsValue("張三"));
//int size()獲取集合的長度,也就是鍵值對的個數
System.out.println(m.size());
}
}
?
四、Map的獲取方法
| 方法名 | 說明 |
|---|---|
| V get(Object key) | 根據鍵獲取值 |
| Set<K>keySet() | 獲取所有鍵的集合 |
| Collection<V>values() | 獲取所有值的集合 |
| Set<Map.Entry<K,V>>entrySet() | 獲取所有鍵值對物件的集合 |
public class MapDemo02 {
public static void main(String[] args) {
//創建Map物件
Map<String,String> m=new HashMap<String,String>();
//添加元素
m.put("1","張三");
m.put("3","李四");
m.put("4","王五");
m.put("2","趙六");
// System.out.println(m);
//V get(Object key)根據鍵獲取值
System.out.println(m.get("3"));//要注意鍵的型別,型別不對會報null
//Set<K>keySet()獲取所有鍵的集合,因為回傳的是個集合,所以用增強for遍歷
Set<String> k=m.keySet();
for (String key:k){
System.out.println(key);
}
//Collection<V>values()獲取所有值的集合,注意,他會按照鍵的排序對值進行排序
Collection<String> c=m.values();
for (String v:c){
System.out.println(v);
}
?
}
}
五、Map集合的遍歷方式
方式一:
1.先獲取Map集合中的所有鍵的集合,使用方法setKey()
2.遍歷所有鍵的集合獲取每一個鍵
3.通過每一個鍵獲取相對應的值 getValues方法
public static void main(String[] args) {
//方式一
//創建Map集合物件
Map<String,String> m=new HashMap<String,String>();
//添加鍵值對
m.put("1","張三");
m.put("3","李四");
m.put("4","王五");
m.put("2","趙六");
//獲取所有鍵的集合
Set<String>s=m.keySet();
//遍歷
for (String key:s){
//再通過鍵獲取相對應的值
String value=https://www.cnblogs.com/CYan521/p/m.get(key);
System.out.println(key+","+value);
}
}
}
方式二、
1.獲取所有鍵值對的集合,使用Set<Map.Entry<K,V>>entrySet()方法
2.遍歷這個集合獲得每一個鍵值對 物件也就是Map.Entry物件
3.再根據鍵值對物件獲取值和鍵
getKey()獲取鍵
getValue()獲取值
public static void main(String[] args) {
// //方式一
// //創建Map集合物件
// Map<String,String> m=new HashMap<String,String>();
// //添加鍵值對
// m.put("1","張三");
// m.put("3","李四");
// m.put("4","王五");
// m.put("2","趙六");
// //獲取所有鍵的集合
// Set<String>s=m.keySet();
// //遍歷
// for (String key:s){
// //再通過鍵獲取相對應的值
// String value=https://www.cnblogs.com/CYan521/p/m.get(key);
// System.out.println(key+","+value);
// }
//方式二
//創建Map集合物件
Map<String,String> m=new HashMap<String,String>();
//添加鍵值對
m.put("1","張三");
m.put("3","李四");
m.put("4","王五");
m.put("2","趙六");
//獲取所有鍵值對的集合Set<Map.Entry<K,V>>entrySet()
Set<Map.Entry<String,String>> s= m.entrySet();
//遍歷該集合
for (Map.Entry<String,String> ss:s){
//通過鍵值對物件獲取鍵值
String key=ss.getKey();
//通過鍵值對物件獲取值
String value=https://www.cnblogs.com/CYan521/p/ss.getValue();
System.out.println(key+","+value);
?
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/452867.html
標籤:其他
下一篇:Java案例——集合嵌套
