我已经编写了下面的代码,但我无法理解为什么它会给出java.util.ConcurrentModificationException。
任何人都可以帮帮我吗?
先谢谢
static LinkedList<Integer> l1 = new LinkedList<Integer>();
public static void main(String[] args)
{
Scanner ob= new Scanner(System.in);
Iterator<Integer> l2=l1.iterator();
ListIterator<Integer> l3=l1.listIterator();
while(true)
{
System.out.println("Enter number (press 0 to exit the loop: ");
int number=ob.nextInt();
if(number == 0)
{
System.out.println("****");
break;
}
l3.add(number);
}
while(l2.hasNext())
System.out.println(l2.next());
}
答案 0 :(得分:2)
您正在获取mod异常,因为您在获取迭代器之后修改了列表,但在调用迭代器上的方法之前。您正在获取迭代器,然后添加到列表中(例如,修改它),然后尝试使用迭代器。
两件事:
点亮你的
Iterator<Integer> l2=l1.iterator();
>输入循环后
使用l1.add
,而不是l3.add
,并完全取消l3
。没有理由(在此代码中)仅使用ListIterator
添加到列表中。