我已经编写了自己的链表数据结构,并希望创建一个迭代器对象,以便遍历列表中的节点。
是否可以直接定义自己的迭代器,还是需要先将其转换为现有的数据结构,如
是否可以直接定义自己的迭代器,还是需要先将其转换为现有的数据结构,如
LinkedList
,然后在其上调用iterator()
?boolean hasNext();
E next();
void remove();
Iterator<T>
接口的类。Iterable<E>
接口,并从 iterator()
方法返回您的迭代器类的新实例。List<E>
。是的,任何类都可以实现Iterable
。然后,您返回另一个类(通常是内部类),该类从iterator
实现Iterator
。
在大多数情况下,这相当简单明了。但是,如果您有具体问题,我们可以提供帮助。请注意,remove
是可选的。
您还可以实现ListIterator
,该迭代器专门用于列表。
Iterable
只是用于 foreach 循环。 - Hunter McMillenset
方法)。如果不需要这样做,我建议坚持使用Iterable
。 - Ted Hopp
<MyDataType>Iterator
的新类并实现Iterator
接口。然后,你只需实现Iterator
接口所需的函数即可。这是接口链接:http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html - Hunter McMillen