Java基礎——Map集合
阿新 • • 發佈:2022-03-30
一、概述:
-
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=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=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=ss.getValue();
System.out.println(key+","+value);
}
}
}