我有一个在 EntrySet 上迭代的 HashMap 。在迭代并更新其值时从 map 获取不同的项目是否安全?
for (Entry<String, EmpData> entry : strEmpDataMap.entrySet()) {
EmpData data = entry.getValue();
String manager = data.getManager();
// getting different item from same map inside loop and updating value
EmpData managerData = strEmpDataMap.get(manager);
managerData.setRepCount(managerData.getRepCount() + 1);
}
假设我已完成所有空检查,我认为在迭代时获取不同的项目并修改其值是安全的。有人可以确认吗?谢谢!
最佳答案
是的,它很安全。在迭代 Map
时唯一不能进行的更改是添加或删除条目。 (实际上,您可以使用 Iterator
的 remove
方法删除条目)。获取一个值并改变它就可以了。
关于java - 迭代Hashmap时更新不同的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33428213/