2016-11-14 62 views
-1

我正在创建库存来存储书籍信息。我已经完成了插入,删除,搜索和其他功能。 然后,我看到练习要求有一条线说:什么是使用Java的链接列表中的迭代器实现?

你也需要为你的链表实现一个迭代器。

我在线查找迭代器并观看了一些视频,仍然无法理解迭代器是什么以及如何实现到我的链表中。

任何人都可以帮到我吗?谢谢。

回答

0

迭代器基本上允许您迭代集合。我不知道什么叫:

您还需要实现一个Iterator您链表

但我认为,它要的你遍历使用迭代器和您的收藏像这样做你的操作。

通过收集使用迭代器遍历:

List<Object> list = new LinkedList<>(); 
Iterator<Object> it = list.iterator(); 
while(it.hasNext()){ 
    Object obj = it.next(); 
    // Do stuff 
} 

如果这不是你在找什么,看来我missunderstood问题。

+0

是的我相信这是我需要做的。但是,问题是我创建了链表并使用Node完成了插入,删除和其他功能。如何实现这个迭代器?好像我必须用迭代器重做整个链表。 – Acetamide

+0

我认为这是它的意思。如果是这样,它应该从一开始就明确指定。很高兴我能帮上忙。 –

+0

问题在最后一句中讲述了......我的讲师只教了Node方法。如果我只是将它实现为一个函数,比如只显示列表函数,是否可能? – Acetamide

0

链接列表已经实现了Iterable接口(通过其他依赖),这表明它需要具有迭代器迭代器对象的iterator()方法,它允许您迭代整个列表。迭代是获取下一个存在的元素,而不会将前一个元素保留在内存中。迭代器必须实现两个方法 - 即next() - 如果存在,则获取下一个元素,如果不存在则抛出noSuchElementException,而hasNext()则返回true或false。

在你的excersice中,我认为你可能需要为你自己的包装器实现自定义Iterator实现到链接列表,以获得关于如何构建Iterator以及它的目的是什么的知识。

+0

我明白了,明白了。我会尝试在我的程序中,看看它是否工作。谢谢! – Acetamide