【发布时间】:2014-01-22 01:12:44
【问题描述】:
我已经编写了下面的代码,但我无法理解为什么它会给出 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());
}
【问题讨论】:
-
啊!尝试使用具有实际意义的名称。
l1是一个列表,但l2是一个迭代器?不是个好主意。 -
由于使用
hasnext而不是hasNext,您当前的代码甚至无法编译。请发布演示问题的真实代码。 -
你有
l2.Next()而不是l2.next()(应该全部小写)。 Java 区分大小写。 -
@T.J.Crowder
l2.next()很好。 -
@ZouZou:在 OP 编辑之前它是
l2.Next()(就像它是l2.hasnext())。 (我的评论措辞不佳,如果您看到 OP 在他们的代码中包含l2.Next(),则只能模糊不清。我已经对其进行了一些改写。)