如何解决迭代器如何在LinkedList上工作?
我对编程还很陌生,目前正在学习Java,尤其是现在正在处理LinkedList和Iterators。我试图打印LinkedList指向的对象的值,并且使用了以下代码:
import java.util.LinkedList;
import java.util.Iterator;
public class Main
{
public static void main(String[] args) {
LinkedList<String> list= new LinkedList<>();
list.add("Florence");
list.add("Paris");
list.add("Berlin");
printList(list);
}
public static void printList(LinkedList<String> list){
Iterator<String> i= list.iterator();
while(i.hasNext()){
System.out.println("Now visiting: "+ i.next());
}
}
}
实际上,当我运行程序时,所有项目都被打印了,但恐怕我不太了解逻辑。
这就是我的理解方式:当 printList 调用em>方法,迭代器从第0个元素开始,该元素有一个下一个元素,打印第0个元素,迭代器转到第一个元素。现在,它打印第一个元素并转到第二个元素,现在我希望 i.hasNext()返回false,从而导致循环中断。
显然,这不是因为第二元素已打印出来,所以我想知道是否有人可以向我解释实际的过程。
预先感谢您的答复,
祝你有美好的一天
安德里亚。
编辑:感谢您的反馈,我理解为什么我确实需要i.next()来遍历元素。实际上,我不明白为什么当我到达最后一个元素(并且我认为.hasNext返回false)时仍会打印该值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。