Java的收益率


问题内容

我已经使用泛型在Java中创建了一个链表,现在我希望能够遍历该表中的所有元素。在C#yield return中,当遍历列表中包含的元素列表时,我将在链接列表中使用。

我将如何创建上面的Java版本,在其中可以迭代链接列表中包含的所有项目?

我希望能够编写代码ala

LinkedList<something> authors = new LinkedList<something>();
for (Iterator<something> i = authors.Values ; i.HasNext())
      doSomethingWith(i.Value);

并认为价值“属性” /方法将由类似于以下内容的代码组成

LinkedListObject<something> current = first;
While (current != null){
 yield return current.getValue();
 current = current.getNext()
}

编辑:请注意,我对使用任何第三方API都不感兴趣。仅内置Java功能。


问题答案:

我在这里想念什么吗?已经有java.util.LinkedList,它已完全启用泛型,并且具有返回Iterator的方法。

如果您真的想重新发明轮子,我建议您考虑创建一个LinkedListIterator类,可能实现ListIterator。它会记住它在链表中的当前位置,并在每次后续调用中前进。