原因:
线程访问越界
在使用迭代器的时候,同一个循环中,Iterator类中的next()方法不能出现俩次;
场景:
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
if(2==iterator.next())
iterator.remove();
}
}
修正:
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()){
Integer k = iterator.next()
System.out.println(k);
if(2==k)
iterator.remove();
}
}