![](/img/trans.png)
[英]How to avoid ConcurrentModificationException when iterating over a map and changing values?
[英]ConcurrentModificationException when iterating over map
迭代地圖內容時,我收到ConcurrentModificationException
for (String sourceKey : sMap.getContent().keySet()) {
List<String> sourceValues = sMap.getValues(sourceKey);
List<String> targetValues = tMap.getValues(sourceKey);
if (areMultiple(sourceValues)) {
....
}
sMap.getContent()
返回Map<String, List<String>>
,我只獲取密鑰。
請注意,不會修改地圖的內容。 我只是在這里迭代。
我在這做錯了什么? 如何在拋出異常時糾正這種情況?
如果正在迭代的基礎集合被Iterator本身以外的任何東西修改,則會發生這種情況。
嘗試使用ConcurrentHashMap而不是普通的HashMap
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.