java如何遍历map集合
遍历Map集合的方法
Java中遍历Map集合有多种方式,可以根据具体需求选择合适的方法。以下是常见的几种遍历方式:
使用entrySet和增强for循环
通过entrySet()方法获取键值对的集合,再使用增强for循环遍历:

Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
使用keySet和增强for循环
通过keySet()方法获取键的集合,再通过键获取值:
for (String key : map.keySet()) {
System.out.println("Key: " + key + ", Value: " + map.get(key));
}
使用Iterator迭代器
通过entrySet().iterator()获取迭代器,使用hasNext()和next()方法遍历:

Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Integer> entry = iterator.next();
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
使用Java 8的forEach方法
利用Lambda表达式简化遍历操作:
map.forEach((key, value) -> System.out.println("Key: " + key + ", Value: " + value));
使用values方法遍历值
仅遍历Map中的值,忽略键:
for (Integer value : map.values()) {
System.out.println("Value: " + value);
}
性能比较
entrySet方式通常性能最优,尤其是需要同时访问键和值时。keySet方式需要额外调用get()方法,性能略低。- Java 8的
forEach语法简洁,但性能与entrySet相近。
适用场景
- 需要键和值时优先使用
entrySet或forEach。 - 仅需要键时使用
keySet。 - 仅需要值时使用
values。 - 需要在遍历过程中删除元素时使用
Iterator。






