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。它会记住它在链表中的当前位置,并在每次后续调用中前进。