我们可以用 Java 编写自己的迭代器吗?

2022-01-10 00:00:00 iterator 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.

相关文章