java - 迭代Hashmap时更新不同的项目

标签 java dictionary iterator hashmap

我有一个在 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 时唯一不能进行的更改是添加或删除条目。 (实际上,您可以使用 Iteratorremove 方法删除条目)。获取一个值并改变它就可以了。

关于java - 迭代Hashmap时更新不同的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33428213/

相关文章:

python - 字典的元组列表

Python file.next() 搞乱了 for 循环

java - 如何使用 Spring WebClient 进行同步调用?

java - Android中从URL读取XML文件

c++ - 为什么 c++ 告诉我没有 [] 与我传入的类型匹配?

javascript - 在 CouchDB Map 函数中发出日期时 - 日期对象上调用了什么?

c++14 - vec.begin() 和 begin(vec) 之间有什么区别

C++ 自定义迭代器类

java - 使用 java SDK 11.0.6 构建可执行 JavaFX 应用程序

java - 将监听器添加到不存在的值