示例代码如下:
package com.miracle.luna.lambda; import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * @author Miracle Luna * @version 1.0 * @date 2019/6/9 21:41 */ public class TraverseMap { public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("key1", "value1"); map.put("key2", "value2"); map.put("key3", "value3"); // 第一种遍历方式 System.out.println("第一种遍历方式:通过遍历 Map 的 keySet,遍历 Key 和 Value"); for (String key : map.keySet()) { System.out.println("Key: " + key + ", Value: " + map.get(key)); } // 第二种遍历方式(如果在遍历过程中,有删除某些Key-Value的需求,可以使用这种遍历方式) System.out.println(" 第二种遍历方式:通过Iterator 迭代器遍历 Key 和 Value"); Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator(); while(iterator.hasNext()) { Map.Entry<String, String> entry = iterator.next(); System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue()); } // 第三种遍历方式(推荐,尤其是容量大时) System.out.println(" 第三种遍历方式:通过遍历 Map 的 entrySet,遍历 Key 和 Value"); for (Map.Entry<String, String> entry : map.entrySet()) { System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue()); } // 第四种遍历方式 System.out.println(" 第四种遍历方式:通过遍历 Map 的 values,只能遍历 Value,获取不到对应的 Key"); for (String value : map.values()) { System.out.println("Value: " + value); } // 第五种遍历方式(JDK 1.8支持的 Lambda 表达式,强烈推荐!!!) System.out.println(" 第五种遍历方式:通过 Lambda 表达式,遍历 Key 和 Value"); map.forEach((key, value) -> { System.out.println("Key: " + key + ", Value: " + value); }); } }
运行结果如下:
第一种遍历方式:通过遍历 Map 的 keySet,遍历 Key 和 Value Key: key1, Value: value1 Key: key2, Value: value2 Key: key3, Value: value3 第二种遍历方式:通过Iterator 迭代器遍历 Key 和 Value Key: key1, Value: value1 Key: key2, Value: value2 Key: key3, Value: value3 第三种遍历方式:通过遍历 Map 的 entrySet,遍历 Key 和 Value Key: key1, Value: value1 Key: key2, Value: value2 Key: key3, Value: value3 第四种遍历方式:通过遍历 Map 的 values,只能遍历 Value,获取不到对应的 Key Value: value1 Value: value2 Value: value3 第五种遍历方式:通过 Lambda 表达式,遍历 Key 和 Value Key: key1, Value: value1 Key: key2, Value: value2 Key: key3, Value: value3
PS:
总结,参考如下:
Enum枚举 遍历判断 四种方式(包括 Lambda 表达式过滤)
https://www.cnblogs.com/miracle-luna/p/10995539.html
Array数组 遍历 四种方式(包含 Lambda 表达式遍历)
https://www.cnblogs.com/miracle-luna/p/10995469.html
List集合 遍历 四种方式(包含 Lambda 表达式遍历)
https://www.cnblogs.com/miracle-luna/p/10995400.html
Map集合 遍历 五种方式(包含 Lambda 表达式遍历)
https://www.cnblogs.com/miracle-luna/p/10995132.html