迭代器如何在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 (将#修改为@)