问题描述
我对编程还很陌生,目前正在学习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 (将#修改为@)