目錄
一、概述:
二、Map集合的功能介紹
三、map官方總結
四、實體
五、回圈遍歷的五種方法
一、概述:
將鍵映射到值的物件
一個映射不能包含重復的鍵
每個鍵最多只能映射到一個值
Map介面和Collection介面的不同
Map是雙列的,Collection是單列的
Map的鍵唯一,Collection的子體系Set是唯一的
Map集合的資料結構針對鍵有效,跟值無關;Collection集合的資料結構是針對元素有效
二、Map集合的功能介紹
a:添加功能
V put(K key,V value):添加元素,這個其實還有另一個功能?替換
如果鍵是第一次存盤,就直接存盤元素,回傳null
如果鍵不是第一次存在,就用值把以前的值替換掉,回傳以前的值
b:洗掉功能
void clear():移除所有的鍵值對元素
V remove(Object key):根據鍵洗掉鍵值對元素,并把值回傳
c:判斷功能
boolean containsKey(Object key):判斷集合是否包含指定的鍵
boolean containsValue(Object value):判斷集合是否包含指定的值
boolean isEmpty():判斷集合是否為空
d:獲取功能
Set<Map.Entry<K,V>> entrySet(): 回傳一個鍵值對的Set集合
V get(Object key):根據鍵獲取值
Set keySet():獲取集合中所有鍵的集合
Collection values():獲取集合中所有值的集合
e:長度功能
int size():回傳集合中的鍵值對的對數
三、map官方總結
Map 介面中鍵和值一一映射. 可以通過鍵來獲取值,
- 給定一個鍵和一個值,你可以將該值存盤在一個 Map 物件,之后,你可以通過鍵來訪問對應的值,
- 當訪問的值不存在的時候,方法就會拋出一個 NoSuchElementException 例外,
- 當物件的型別和 Map 里元素型別不兼容的時候,就會拋出一個 ClassCastException 例外,
- 當在不允許使用 Null 物件的 Map 中使用 Null 物件,會拋出一個 NullPointerException 例外,
- 當嘗試修改一個只讀的 Map 時,會拋出一個 UnsupportedOperationException 例外,
| 序號 | 方法描述 |
|---|---|
| 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 視圖, |
四、實體
下面的例子來解釋Map的功能
import java.util.*;
public class CollectionsDemo {
public static void main(String[] args) {
Map m1 = new HashMap();
m1.put("Zara", "8");
m1.put("Mahnaz", "31");
m1.put("Ayan", "12");
m1.put("Daisy", "14");
System.out.println();
System.out.println(" Map Elements");
System.out.print("\t" + m1);
}
}
以上實體編譯運行結果如下:
Map Elements
{Mahnaz=31, Ayan=12, Daisy=14, Zara=8}
五、回圈遍歷的五種方法
package nc.util.TestClientTools;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* map集合遍歷的五種方法
* @FileName: CircleMap.java
* @ClassName: nc.util.TestClientTools.CircleMap
* @Description: TODO(這里用一句話描述這個類的作用)
* @author chenfang
* @email ichenfang163@163.com
* @date 2017-12-11 下午3:54:24
* @version V1.0
*
*/
//回圈遍歷map的五種方法
public class CircleMap {
public static void main(String[] args) {
Map<String, Integer> tempMap = new HashMap<String, Integer>();
tempMap.put("a", 1);
tempMap.put("b", 2);
tempMap.put("c", 3);
// JDK1.4中
// 遍歷方法一 hashmap entrySet() 遍歷
System.out.println("方法一");
Iterator it = tempMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println("key=" + key + " value=" + value);
}
System.out.println("");
// JDK1.5中,應用新特性For-Each回圈
// 遍歷方法二
System.out.println("方法二");
for (Map.Entry<String, Integer> entry : tempMap.entrySet()) {
String key = entry.getKey().toString();
String value = entry.getValue().toString();
System.out.println("key=" + key + " value=" + value);
}
System.out.println("");
// 遍歷方法三 hashmap keySet() 遍歷
System.out.println("方法三");
for (Iterator i = tempMap.keySet().iterator(); i.hasNext();) {
Object obj = i.next();
System.out.println(obj);// 回圈輸出key
System.out.println("key=" + obj + " value=" + tempMap.get(obj));
}
for (Iterator i = tempMap.values().iterator(); i.hasNext();) {
Object obj = i.next();
System.out.println(obj);// 回圈輸出value
}
System.out.println("");
// 遍歷方法四 treemap keySet()遍歷
System.out.println("方法四");
for (Object o : tempMap.keySet()) {
System.out.println("key=" + o + " value=" + tempMap.get(o));
}
System.out.println("11111");
// java如何遍歷Map <String, ArrayList> map = new HashMap <String,
// ArrayList>();
System.out.println("java 遍歷Map <String, ArrayList> map = new HashMap<String, ArrayList>();");
Map<String, ArrayList> map = new HashMap<String, ArrayList>();
Set<String> keys = map.keySet();
Iterator<String> iterator = keys.iterator();
while (iterator.hasNext()) {
String key = iterator.next();
ArrayList arrayList = map.get(key);
for (Object o : arrayList) {
System.out.println(o + "遍歷程序");
}
}
System.out.println("2222");
// 遍歷方法五
Map<String, List> mapList = new HashMap<String, List>();
for (Map.Entry entry : mapList.entrySet()) {
String key = entry.getKey().toString();
List<String> values = (List) entry.getValue();
for (String value : values) {
System.out.println(key + " --> " + value);
}
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/304362.html
標籤:其他
上一篇:國慶福利“CSS定位大禮包”
下一篇:Flex使用指南
