微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

迭代器如何在LinkedList上工作?

如何解决迭代器如何在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 举报,一经查实,本站将立刻删除。