Java Map 接口
Map接口中鍵和值一一映射. 可以通過鍵來獲取值。
給定一個鍵和一個值,你可以將該值存儲在一個Map對象. 之後,你可以通過鍵來訪問對應的值。
當訪問的值不存在的時候,方法就會拋出一個NoSuchElementException異常.
當對象的類型和Map裏元素類型不兼容的時候,就會拋出一個 ClassCastException異常。
當在不允許使用Null對象的Map中使用Null對象,會拋出一個NullPointerException 異常。
當嘗試修改一個只讀的Map時,會拋出一個UnsupportedOperationException異常。
JDK 1.8獲取
Map<String,String> mapp=new HashMap<>();
mapp.put("TestOne","集合中");
Map<String,String> map=new HashMap<>();
//將一個map放入另一個map中
map.putAll(mapp);
map.put("mapTestOne","第一個測試");
map.put("mapTesttwo","第二個測試");
map.put("mapTestThree","第三個測試");
//Jdk 1.8 lambda寫法
mapp.forEach((key,value)->{
System.out.println(key+"======"+value);
});
map.forEach((key,value)->{
System.out.println(key+"=========="+value);
});
解釋:用於兩個參數之間進行操作的函數式接口是 BiConsumer。這個函數式接口正好用來操作 Map 的 key 和 value。JDK8強化了針對 Map 類的迭代方式,新增了一個默認方法 forEach,它接收一個 BiConsumer 函數
第一種方法:
Map<String,String> map=new HashMap<>();
map.put("mapTestOne","第一個測試");
map.put("mapTesttwo","第二個測試");
map.put("mapTestThree","第三個測試");
for (Map.Entry<String,String> ms: map.entrySet()){
System.out.println(ms.getKey()+"========="+ms.getValue());
}
第二種方法
Map<String,String> map=new HashMap<>();
map.put("mapTestOne","第一個測試");
map.put("mapTesttwo","第二個測試");
map.put("mapTestThree","第三個測試");
for (Map.Entry<String,String> ms: map.entrySet()){
System.out.println(ms.getKey()+"========="+ms.getValue());
}
jian:mapTestThree
jian:mapTesttwo
jian:mapTestOne
值:第三個測試
值:第二個測試
值:第一個測試
第三種方法:
Map<String,String> map=new HashMap<>();
map.put("mapTestOne","第一個測試");
map.put("mapTesttwo","第二個測試");
map.put("mapTestThree","第三個測試");
Iterator<Map.Entry<String, String>> entries = map.entrySet().iterator();
while(entries.hasNext()){
Map.Entry<String, String> entry = entries.next();
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key+":"+value);
}
}
API
序號 | 方法描述 |
---|---|
1 | void clear( ) 從此映射中移除所有映射關係(可選操作)。 |
2 | boolean containsKey(Object k) 如果此映射包含指定鍵的映射關係,則返回 true。 |
3 | boolean containsValue(Object v) 如果此映射將一個或多個鍵映射到指定值,則返回 true。 |
4 | Set entrySet( )返回此映射中包含的映射關係的 Set 視圖。 |
5 | boolean equals(Object obj)比較指定的對象與此映射是否相等。 |
6 | Object get(Object k)返回指定鍵所映射的值;如果此映射不包含該鍵的映射關係,則返回 null。 |
7 | int hashCode( )返回此映射的哈希碼值。 |
8 | boolean isEmpty( )如果此映射未包含鍵-值映射關係,則返回 true。 |
9 | Set keySet( )返回此映射中包含的鍵的 Set 視圖。 |
10 | Object put(Object k, Object v) 將指定的值與此映射中的指定鍵關聯(可選操作)。 |
11 | void putAll(Map m) 從指定映射中將所有映射關係複製到此映射中(可選操作)。 |
12 | Object remove(Object k) 如果存在一個鍵的映射關係,則將其從此映射中移除(可選操作)。 |
13 | int size( ) 返回此映射中的鍵-值映射關係數。 |
14 | Collection values( )返回此映射中包含的值的 Collection 視圖。 |