J'ai écrit le code suivant qui entraîne une exception de modification simultanée. Comment puis-je l'empêcher? L'idée est d'échapper à toutes les valeurs de la carte et de reconstruire l'objet (dO) avec une nouvelle carte param.Exception de modification simultanée 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());
// S'il vous plaît noter que le paramètre est un hashmap, est-il nécessaire pour supprimer l'entrée avant d'insérer ou il remplacera la nouvelle valeur associée à la clé. Comment ça marche en Java?
dO.addParameter(entry.getKey(),valList.toArray(new String[valList.size()]));
}
}
}