我测试了接口的方法next()和remove()方法Iterator.我得到以下异常:
线程"main"java.util.ConcurrentModificationException中的异常
这是我的代码:
import java.util.*;
public class ListTest {
public static void main(String[] args) {
Collection<Integer> list = new ArrayList<Integer>();
Iterator<Integer> iterator = list.iterator();
Collections.addAll(list, 1, 2, 3, 4, 5);
if (iterator.hasNext()) {
iterator.next();
iterator.remove();
}
System.out.println(list);
}
}
Run Code Online (Sandbox Code Playgroud)
使用你Iterator的next()和remove().没有问题.
你ConcurrentModificationException是List在创建后添加元素造成的Iterator.
您应该List在Iterator创建之前添加元素.
更改:
Iterator<Integer> iterator = list.iterator();
Collections.addAll(list, 1, 2, 3, 4, 5);
Run Code Online (Sandbox Code Playgroud)
至:
Collections.addAll(list, 1, 2, 3, 4, 5);
Iterator<Integer> iterator = list.iterator();
Run Code Online (Sandbox Code Playgroud)
你的循环将正常工作.
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |