在Java中,如果遍历Map并移除单中的元素,如果使用的是非迭代器模式,非提示ConcurrentModificationException 异常。
实例代码:正确遍历Map元素和移除Map 元素方法
Map<String, Object> params = JSONObject.toJavaObject(entity, Map.class);
Iterator<Map.Entry<String, Object>> it = params.entrySet().iterator();
while(it.hasNext()){
Map.Entry<String, Object> entry = it.next();
String key = entry.getKey();
Object value = entry.getValue();
if(value instanceof String){
String str = String.valueOf(value);
if(StringUtils.isEmpty(str)){
it.remove();//使用迭代器的remove()方法删除元素
}
}
}
实例代码:正确遍历Map元素和错误移除Map 元素方法
Map<String, Object> params = JSONObject.toJavaObject(entity, Map.class);
Iterator<Map.Entry<String, Object>> it = params.entrySet().iterator();
while(it.hasNext()){
Map.Entry<String, Object> entry = it.next();
String key = entry.getKey();
Object value = entry.getValue();
if(value instanceof String){
String str = String.valueOf(value);
if(StringUtils.isEmpty(str)){
params.remove(key)// 会提示ConcurrentModificationException 异常
}
}
}
版权声明:本文为zhouzhiwengang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。