Java 遍历Map元素并移除符合条件元素

小虾米 阅读:781 2021-03-31 12:55:31 评论:0

在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 异常 
				} 
			}       
	    }

 

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号