package com.data.linear.map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
/**
* HashMap的遍歷——4種方式
*
*/
public class HashMapTraverse {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("1", "value1");
map.put("2", "value2");
map.put("3", "value3");
map.put("4", "value4");
// 第一種:普通使用,二次取值
System.out.println("通過Map.keySet遍歷key和value:");
for (String key : map.keySet()) {
System.out.println("KEY:" + key + " " + "VALUE:" + map.get(key));
}
// 第二種
System.out.println("\n通過Map.entrySet使用iterator遍歷key和value: ");
Iterator map1it = map.entrySet().iterator();
while (map1it.hasNext()) {
Map.Entry<String, String> entry = (Entry<String, String>) map1it.next();
System.out.println("Key: " + entry.getKey() + " Value: " + entry.getValue());
}
// 第三種:推薦,尤其是容量大時
System.out.println("\n通過Map.entrySet遍歷key和value");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("KEY:" + entry.getKey() + " " + "VALUE:" + entry.getValue());
}
// 第四種
System.out.println("\n通過Map.values()遍歷所有的value,但不能遍歷key");
for (String v : map.values()) {
System.out.println("The value is " + v);
}
// 第五種 通過JDK1.8的新特性Lambda表達式來遍歷
/*
* 格式:
* map集合名稱.forEach((key,value) -> {
* System.out.println(key + "===="+ value);
* });
*/
HashMap<Integer,String> map = new HashMap<Integer,String>();
map.put(1,"a");
map.put(2,"b");
map.put(3,"c");
map.put(4,"d");
map.forEach((key,value) -> {
System.out.println(key + "===="+ value);
});
}