gpt4 book ai didi

java - 使用迭代器向后列表迭代

转载 作者:行者123 更新时间:2023-12-01 09:45:50 25 4
gpt4 key购买 nike

这里是关于listiterator的代码。在向前方向上工作正常,但当向后迭代时,它会进入无限循环。在每个元素打印之后,我都会加一个加号,并在最后生成列表。如果不包括向后迭代,则工作正常,但向后迭代会出现问题。我不知道为什么会发生?

            package iteratordemo;
import java.util.*;

/**
*
* @author New
*/
public class IteratorDemo {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here


ArrayList<String> al=new ArrayList<String>();

al.add("a");
al.add("b");
al.add("c");
al.add("d");
al.add("e");


System.out.println("original content of al:" +al);
Iterator<String> itr=al.iterator();

while(itr.hasNext()){
String element=itr.next();
System.out.println(element + " ");
}

System.out.println();

/* modify the object being iterated

*/
ListIterator litr=al.listIterator();
while(litr.hasNext()){
Object element = litr.next();
litr.set(element + "+");
System.out.println("modified content of al: " );
itr=al.iterator();
while(itr.hasNext())
{
element=itr.next();
System.out.println(element + " ");

}
System.out.println();

// now display the list backward
// while returning in backward direction it goes into infinite loop
System.out.println("modified list backwards:");
while(litr.hasPrevious()){

element= litr.previous();
System.out.println(element + " ");

}
System.out.println();

}
}

}

最佳答案

ListIterator 是一种游标,指向某个元素。 ListIterator.next()ListIterator.previous() 方法将此光标移动到另一个元素,因此您的代码会反复向前和向后移动它,从而导致无限循环。

关于java - 使用迭代器向后列表迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38036384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com