首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 遍歷 Map 的四種常用方式深度解析

     編輯:Java 相關知識

準備數據

Map<String, String> map = new HashMap<>();
map.put("username", "qq");
map.put("passWord", "123");
map.put("userID", "1");
map.put("email", "qq@qq.com");

方式一:for-each 遍歷 entrySet(推薦)

for (Map.Entry<String, String> entry : map.entrySet()) {
    System.out.println(entry.getKey() + " ---> " + entry.getValue());
}

優點:語法簡潔,同時獲取鍵值,性能最佳。

方式二:Iterator 遍歷 entrySet

Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
    Map.Entry<String, String> entry = it.next();
    System.out.println(entry.getKey() + " == " + entry.getValue());
}

適用:需要在遍歷時移除元素(調用 it.remove())。

方式三:遍歷 keySet 再 get 值

for (String key : map.keySet()) {
    System.out.println(key + " -- " + map.get(key));
}

缺點:需額外查找 value,性能較差;僅需鍵時使用。

方式四:Iterator 遍歷 keySet

Iterator<String> it = map.keySet().iterator();
while (it.hasNext()) {
    String key = it.next();
    System.out.println(key + " ===== " + map.get(key));
}

同方式三,不推薦用於大量數據。

性能與場景對比表

方式性能可讀性可移除元素推薦場景
for-each entrySet★★★★★★★★★★否常規遍歷
Iterator entrySet★★★★☆★★★★☆是遍歷中刪除
for-each keySet★★★☆☆★★★★☆否僅需鍵
Iterator keySet★★★☆☆★★★☆☆是遍歷中刪除鍵

Java 8+ 新寫法

map.forEach((k, v) -> System.out.println(k + " = " + v));
// 或並行處理
map.entrySet().parallelStream().forEach(e -> System.out.println(e.getKey() + " = " + e.getValue()));

總結

日常開發首選 for-each 遍歷 entrySet,兼顧性能與可讀性;需刪除時用 Iterator;Java 8 提供更函數式的選擇。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved