package com.sirius.aggregate;
import javax.xml.transform.Source;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
* className:hashMapErgodic
* Description:HashMapErgodic 的五种遍历
*
* @author:yanmh
*/
class HashMapErgodic {
/**
* 使用 Iterator 遍历 HashMap EntrySet
*
* 使用 Iterator 遍历 HashMap KeySet
*
* 使用 For-each 循环迭代 HashMap
*
* 使用 Lambda 表达式遍历 HashMap
*
* 使用 Stream API 遍历 HashMap
*
* */
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("key1","value1");
map.put("key2","value2");
map.put("key3","value3");
map.put("key4","value4");
map.put("key5","value5");
map.put("key6","value6");
/**
* 01使用 Iterator 遍历 HashMap EntrySet
* */
System.out.println("01使用 Iterator 遍历 HashMap EntrySet");
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while(iterator.hasNext()){
Map.Entry<String, String> entry = iterator.next();
System.out.println("entry:"+entry+" "+"value:"+entry.getValue());
}
/**
* 02使用 Iterator 遍历 HashMap KeySet
* */
System.out.println("02使用 Iterator 遍历 HashMap KeySet");
Iterator<String> iterator1 = map.keySet().iterator();
while (iterator1.hasNext()){
//获取key值
String key = iterator1.next();
System.out.println("key: "+key+" "+"value:"+map.get(key));
}
/**
* 03使用 For-each 循环迭代 HashMap
* */
System.out.println("03使用 For-each 循环迭代 HashMap");
for (Map.Entry<String, String> entry :map.entrySet()){
System.out.println("entry :"+entry+" "+"value: "+entry.getValue());
}
/**
* 04使用 Lambda 表达式遍历 HashMap
* */
System.out.println("04使用 Lambda 表达式遍历 HashMap");
map.forEach((key,value)->{
System.out.println("key:" +key+ " "+"value:" +value );
});
/**
* 05使用 Stream API 遍历 HashMap
* */
System.out.println("05使用 Stream API 遍历 HashMap");
map.entrySet().stream().forEach((entry)->{
System.out.println("key:"+entry.getKey()+" "+"value:"+ entry.getValue());
});
}
}