当然可以 👍 我来帮你详细讲解一下 Map 的循环遍历(以 Java 为例),并顺带说明在其他语言(如 Python、Go、JavaScript)中也怎么写。


🧭 一、Java 中 Map 的循环遍历

在 Java 中,Map<K,V> 是一种键值对集合,比如 HashMapLinkedHashMapTreeMap 等。
常见的 5 种遍历方式如下👇


① 使用 entrySet() 遍历(最常见、高效 ✅)

Map&lt;String, Integer> map = new HashMap&lt;>();
map.put("apple", 3);
map.put("banana", 2);
map.put("orange", 5);

for (Map.Entry&lt;String, Integer> entry : map.entrySet()) {
    System.out.println(entry.getKey() + " => " + entry.getValue());
}

✅ 优点:同时获取 key 和 value,性能最好。


② 使用 keySet() 遍历(只需要键)

for (String key : map.keySet()) {
    System.out.println("Key = " + key + ", Value = " + map.get(key));
}

⚠️ 缺点:map.get() 可能引起二次查找,效率略低。


③ 使用 values() 遍历(只关心值)

for (Integer value : map.values()) {
    System.out.println("Value = " + value);
}


④ 使用 Java 8 Lambda / Stream

map.forEach((key, value) -> {
    System.out.println(key + " => " + value);
});

✅ 写法最简洁,推荐用于现代代码。


⑤ 使用迭代器 Iterator

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

✅ 可在遍历时安全地删除元素。


🌍 二、其他语言的 map 遍历写法对比

语言遍历写法
Pythonfor k, v in dict.items(): print(k, v)
Gofor k, v := range myMap { fmt.Println(k, v) }
JavaScriptfor (let [k, v] of myMap) { console.log(k, v) }
C#foreach (var kv in dict) { Console.WriteLine($"{kv.Key}={kv.Value}"); }

📘 小结

方式获取键获取值性能推荐度
entrySet()⭐⭐⭐⭐✅ 推荐
keySet()✅ (需 get)⭐⭐
values()⭐⭐⭐
forEach()⭐⭐⭐⭐✅ 推荐
Iterator⭐⭐⭐用于删除时