java中循环遍历删除List和Set集合中元素的方法

来源:互联网 发布:采购数据分析报告范本 编辑:程序博客网 时间:2024/05/21 12:39

1.异常java一边遍历一边删除集合中的元素会报异常ConcurrentModificationException

2.正确的做法如下:

package list; import java.util.*; public class Demo {     public static void main(String[] args) {        List<Object> obj = new ArrayList<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)){                it.remove();                i--;            }        }        System.out.println("移除后: " + obj.toString());             } }

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)){                it.remove();                i--;            }        }        System.out.println("移除后: " + obj.toString());             } }

原文地址:http://www.cnblogs.com/-liuhuanchao/p/4149806.html(侵删)

结尾:java8的新streamApi更方便,然而项目中用的是java7-




0 0
原创粉丝点击