本文主要是介绍【java集合】java集合如何边遍历边移除_ConcurrentModificationException,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
错误方式
不能使用for循环,若是使用的话,出现的情况
public void wrongRemove(){ArrayList<String> list = new ArrayList<>();list.add("a");list.add("B");list.add("c");list.add("d");for (String s : list) {list.remove("c");System.out.println(s);}}
结果将会抛出异常:ConcurrentModificationException
原因:Java 一般不允许一个线程在遍历 Collection 时另一个线程修改它。
正确方式
使用iterator()边遍历边修改 Collection 的唯一正确方式是使用 Iterator.remove() 方法,如下:
public void test(){ArrayList<String> list = new ArrayList<>();list.add("a");list.add("B");list.add("c");list.add("d");Iterator<String> it = list.iterator();while(it.hasNext()){String next = it.next();if(next.equals("d")) {it.remove();continue;}System.out.println(next);}}
这篇关于【java集合】java集合如何边遍历边移除_ConcurrentModificationException的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!