示例代碼如下:
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("\n第二種遍歷方式:通過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("\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 value : map.values()) { System.out.println("Value: " + value); } // 第五種遍歷方式(JDK 1.8支持的 Lambda 表達式,強烈推薦!!!) System.out.println("\n第五種遍歷方式:通過 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