Java - ListIterator的无限循环.hasNext()

Nik*_*Nik 5 java arraylist infinite-loop listiterator

ArrayList<String> list = new ArrayList<String>();
list.add("test");

while(list.listIterator().hasNext()) {
    System.out.println(list.listIterator().next());
}
Run Code Online (Sandbox Code Playgroud)

这会产生一个带有"测试"的无限循环线.为什么会发生这种情况以及如何解决?

ini*_*mer 12

为hasNext创建的迭代器与下一个迭代器不同.

ArrayList<String> list = new ArrayList<String>();
list.add("test");
Iterator listIterator = list.listIterator()
while(listIterator.hasNext()) {
        System.out.println(listIterator.next());
}
Run Code Online (Sandbox Code Playgroud)