我寫了以下代碼導致併發修改異常。我怎樣才能防止它?這個想法是逃避Map的所有值,並用新的參數映射重建對象(dO)。Java併發修改異常
try {
Map<String,String[]> paramMap = dO.getParameterMap();
Set<Map.Entry<String, String[]>> entries = paramMap.entrySet();
Iterator<Map.Entry<String, String[]>> it = entries.iterator();
while (it.hasNext()) {
Map.Entry<String, String[]> entry = it.next();
String[] values = entry.getValue();
List<String> valList = new ArrayList<String>();
if (values != null) {
for (String value : values) {
valList.add(escapeHTML(value));
}
dO.removeParameter(entry.getKey());
//請注意,參數是一個HashMap是,是否需要在插入前先刪除該條目或將取代與鍵關聯的新的價值。它如何在Java中工作?
dO.addParameter(entry.getKey(),valList.toArray(new String[valList.size()]));
}
}
}