什么是使用Java的链接列表中的迭代器实现?

时间:2016-11-14 11:03:50

标签: java linked-list

我正在创建一个库存来存储图书信息。我已经完成了插入,删除,搜索等功能。 然后,我看到运动要求有一条线说:

您还需要为链接列表实现Iterator。

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

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

2 个答案:

答案 0 :(得分:0)

迭代器基本上允许您迭代Collection。我不知道是什么意思:

  

您还需要为链接列表实现Iterator

但我认为,它希望你使用Iterator迭代你的Collection并按照这样做你的操作。

使用迭代器迭代集合:

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

如果这不是你想要的,我似乎错过了这个问题。

答案 1 :(得分:0)

链接列表已经实现了Iterable接口(通过其他依赖项),这表明它需要有iterator()方法来重新调整Iterator对象,这允许您遍历列表。迭代是获取每个下一个现有元素,而不将之前的元素保留在内存中。

Iterator必须实现两个方法 - next() - 如果存在则获取下一个元素,如果不存在则抛出noSuchElementException,并且hasNext()返回true或false。

在您的例外情况中,我认为您可能需要为自己的链接列表包装器实现Iterator的自定义实现,以获取有关如何构建Iterator及其用途的知识。