2015-10-30 3 views
0

У меня есть hashmap, который я повторяю в EntrySet. Безопасно ли получать другой элемент с карты при повторении, а затем обновлять его значение, как показано ниже?обновить другой элемент при итерации Hashmap

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); 
} 

Предполагая, что я все нулевые проверки на месте, я думаю, что это безопасно, чтобы получить другой элемент и изменить его значение в то время как итерация. Может кто-нибудь подтвердить? Благодаря!

ответ

1

Да, это безопасно. Единственные изменения, которые вы не можете сделать, итерации по Map - это те, которые добавляют или удаляют записи. (Фактически вы можете удалить запись с помощью метода Iteratorremove). Получение ценности и мутация это нормально.

Смежные вопросы