使用entrySet()可同时遍历键和值,适合需键值对的场景;2. keySet()仅遍历键;3. values()仅遍历值;4. Iterator可在遍历时安全删除元素;5.forEach()结合Lambda更简洁,适用于Java 8+。选择依据需求而定。
在Java中遍历Map的键和值有多种方式,常用的方法取决于你的具体需求,比如只需要键、只需要值,还是需要同时获取键和值。以下是几种常见的遍历方式:
通过 entrySet() 获取Map中所有的键值对,然后使用增强for循环或迭代器遍历。
示例代码:
Map
map.put("Alice", 25);
map.put("Bob", 30);
for (Map.Entry
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
它返回Map中所有键的Set视图,可以用于遍历或判断某个键是否存在。
示例代码:
for (String key : map.keySet()) {
System.out.println("Key: " + key);
}
它返回Map中所有值的Collection视图。
示例代码:
for (Integer value : map.values()) {
System.out.println("Value: " + value);
}
你可以通过 entrySet().iterator() 获得迭代器。
示例代码:
Iterator
while (iterator.hasNext()) {
Map.Entry
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
// 可以安全调用 iterator.remove()
// iterator.remove();
}
利用Map接口提供的 forEach() 方法配合Lambda表达式。
示例代码:
map.forEach((key, value) ->
System.out.println("Key: " + key + ", Value: " + value));