java map遍历过程中修改value
时间: 2024-05-14 19:14:49 浏览: 196
在遍历过程中修改Map的value是不安全的,因为它可能会导致ConcurrentModificationException异常。如果你想要修改Map的值,最好的方法是使用迭代器并调用迭代器的方法来修改Map的值。例如,可以使用Map.entrySet()方法获取Map.Entry集合,然后使用迭代器遍历集合并修改值。以下是一个示例代码:
```
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Integer> entry = iterator.next();
if (entry.getKey().equals("B")) {
entry.setValue(100); // 修改值
}
}
System.out.println(map); // 输出 {A=1, B=100, C=3}
```
在上面的示例代码中,我们使用迭代器遍历Map的条目集合,并检查每个条目的键是否为"B"。如果是,就修改该条目的值为100。最后,我们输出修改后的Map。注意,我们没有直接修改Map的值,而是使用entry.setValue()方法来修改条目的值。这是因为直接修改Map的值可能会导致ConcurrentModificationException异常。
阅读全文