java如何遍历map
遍历Map的几种方法
使用entrySet遍历
通过Map.entrySet()获取键值对的集合,使用增强for循环或迭代器遍历:
Map<String, Integer> map = new HashMap<>();
for (Map.Entry<String, Integer> entry : map.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
}
使用keySet遍历
通过Map.keySet()获取所有键的集合,再通过键获取值:

for (String key : map.keySet()) {
Integer value = map.get(key);
}
使用values遍历
通过Map.values()直接遍历所有值(不获取键):

for (Integer value : map.values()) {
// 仅操作值
}
Java 8的forEach方法
使用Lambda表达式简化遍历:
map.forEach((key, value) -> {
System.out.println(key + "=" + value);
});
使用迭代器遍历
通过entrySet().iterator()获取迭代器:
Iterator<Map.Entry<String, Integer>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Integer> entry = it.next();
// 操作entry.getKey()或entry.getValue()
}
性能比较
entrySet遍历通常性能最优,尤其适合需要同时访问键和值的场景keySet遍历需要额外调用get()方法,可能略慢- 仅需值时
values()最直接 - Java 8的
forEach语法简洁但性能与entrySet相当
线程安全考虑
遍历时若需修改Map,应使用ConcurrentHashMap或通过Iterator.remove()删除元素,避免ConcurrentModificationException异常。






