Java中使用Map.Entry遍历键值对

使用entrySet()遍历Map可高效访问键值对,通过Map.Entry获取每个键值对元素,是最常用的方法。

在Java中,遍历Map的键值对是一个常见操作。使用

Map.Entry
可以高效地同时访问键和值。最常用的方式是通过
entrySet()方法获取Map中所有键值对的集合,然后进行遍历。

使用增强for循环遍历Map.Entry

这是最直观、常用的方法。通过

map.entrySet()
获取Entry集合,再用增强for循环逐个处理。

Map map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);

for (Map.Entry entry : map.entrySet()) {
    String key = entry.getKey();
    Integer value = entry.getValue();
    System.out.println("Key: " + key + ", Value: " + value);
}

使用Iterator遍历

适用于需要在遍历过程中安全删除元素的场景。

Iterator> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
    Map.Entry entry = iterator.next();
    System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
    
    // 可以安全删除
    if ("apple".equals(entry.getKey())) {
        iterator.remove();
    }
}

使用Lambda表达式(Java 8+)

代码更简洁,适合简单操作。

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

这几种方式都能有效遍历Map中的键值对。entrySet()返回的是Map内部Entry对象的视图,性能较好,推荐用于需要同时使用键和值的场景。如果只访问键或值,可分别使用keySet()或values()。基本上就这些,不复杂但容易忽略细节。