java如何遍历map
遍历Map的几种方法
在Java中,遍历Map可以通过多种方式实现,以下是几种常用的方法:
使用entrySet和增强for循环
通过entrySet()方法获取Map的键值对集合,然后使用增强for循环遍历:
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
for (Map.Entry<String, Integer> entry : map.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println("Key: " + key + ", Value: " + value);
}
使用keySet和增强for循环
通过keySet()方法获取所有键的集合,再通过键获取值:
for (String key : map.keySet()) {
Integer value = map.get(key);
System.out.println("Key: " + key + ", Value: " + value);
}
使用forEach和Lambda表达式(Java 8+)
利用Java 8的forEach方法和Lambda表达式简化遍历:
map.forEach((key, value) -> {
System.out.println("Key: " + key + ", Value: " + value);
});
使用迭代器
通过entrySet().iterator()获取迭代器遍历:
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());
}
使用Stream API(Java 8+)
通过Stream API遍历Map的键值对:
map.entrySet().stream().forEach(entry -> {
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
});
方法对比
- entrySet:推荐方式,直接获取键值对,效率较高。
- keySet:需通过键获取值,可能额外调用
get()方法。 - Lambda/Stream:代码简洁,适合Java 8及以上版本。
- 迭代器:适用于需要删除元素的场景(通过
iterator.remove())。
根据需求和Java版本选择合适的方法即可。







