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

在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版权协议,转载请附上原文出处链接和本声明。