我们可以用 Java 编写自己的迭代器吗?
如果我有一个包含 [alice, bob, abigail, charlie]
的列表,并且我想编写一个迭代器,以便它遍历以 'a' 开头的元素,我可以编写自己的吗?我怎样才能做到这一点 ?
If I have a list containing [alice, bob, abigail, charlie]
and I want to write an iterator such that it iterates over elements that begin with 'a', can I write my own ? How can I do that ?
推荐答案
当然.迭代器只是 java 的一个实现.util.Iterator
接口.如果您正在使用来自 java.util
的现有可迭代对象(例如,LinkedList
),则需要对其进行子类化并覆盖其 iterator
函数,以便您返回自己的,或提供一种将标准迭代器包装在您的特殊 Iterator
实例中的方法(其优点是使用更广泛),等等.
Sure. An iterator is just an implementation of the java.util.Iterator
interface. If you're using an existing iterable object (say, a LinkedList
) from java.util
, you'll need to either subclass it and override its iterator
function so that you return your own, or provide a means of wrapping a standard iterator in your special Iterator
instance (which has the advantage of being more broadly used), etc.
相关文章