问题描述
您应该将信息保留在其他集合中,以便在迭代后对其进行修改。您只能iterator.remove()
在迭代器期间使用删除条目。HashMap
合同禁止在迭代过程中对其进行更改。
解决方法
是否可以在迭代过程中更改同一HashMap实例的键?因为地图条目集没有方法entry.setKey()。现在我能想到的是创建另一个HashMap …
MultipartParsingResult parsingResult = parseRequest(request);
Map<String,String[]> mpParams = parsingResult.getMultipartParameters();
Map<String,String[]> mpParams2 = new HashMap<String,String[]>();
Iterator<Entry<String,String[]>> it = mpParams.entrySet().iterator();
while (it.hasNext()) {
Entry<String,String[]> entry = it.next();
String name = entry.getKey();
if (name.startsWith(portletNamespace)) {
mpParams2.put(name.substring(portletNamespace.length(),name.length()),entry.getValue());
}
else {
mpParams2.put(name,entry.getValue());
}
}