今天一个网友问我集合忘记了没有,这一问让我纠结了一下,最后决定把这个集合问题写下来,以免自己在犯下类似的问题:

需要删除List和Set中的某些元素,当时使用边遍历,边删除的方法,却报了以下异常:ConcurrentModificationException为了以后不会忘记,和也给遇到同样问题的同事提供一个参考:

出现错误的代码如下所示:

package set;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class Demo {

	public static void main(String[] args) {
		Set<Object> obj = new HashSet<Object>();
		obj.add("a");
		obj.add("b");
		obj.add("c");
		System.out.println("移除前:" + obj.toString());
		Iterator<Object> it = obj.iterator();
		for(int i=0; i<obj.size(); i++){
			System.out.println(i);
			Object name = it.next();
			if("a".equals(name) || "b".equals(name)){
				obj.remove(name);
				i--;
			}
		}
		System.out.println("移除后: " + obj.toString());
		
	}

}

更多相关文章

  1. java入门---数据结构操作实例之获取链表的元素
  2. [疯狂Java]NIO.2:walkFileTree、FileVisitor(遍历文件/目录)
  3. Java的Web项目中Web.xml配置文件元素详解
  4. Java XML - 具有相同名称的嵌套元素

随机推荐

  1. Android 支付宝App支付集成
  2. Android 分页组件
  3. android反编译与加固(Mac版)
  4. Android常见布局简述
  5. Android中文文档v0.1 beta低调发布,期待
  6. Android可收缩/扩展的TextView【2】
  7. 《宅男的android开发指南》(翻译)--1
  8. android ViewPager不可滑动(android 项目
  9. Android(安卓)适配不同分辨率&hdpi、mdpi
  10. Android 2.2 开发环境配置详解