实现 Iterable 与实现 Iterator

Implementing Iterable vs implementing Iterator

我有一个对象,我想在其中实现自定义迭代,但是:

所以我的解决方案是同时实现 IteratorIterable,并在我的实现中包含以下方法:

@Override
public java.util.Iterator iterator() {
    return this;
}

这样的做法好吗?如果不是,我应该怎么做才能正确解决这个问题?

这种做法不好。创建一个辅助 Iterator 对象,并使 Iterator 成为 嵌套 class 在您当前的 class 中,这将允许它访问私人领域。

一般来说,尝试让您的对象同时成为 IterableIterator 极有可能使用户感到困惑并破坏对 Iterable 如何假设的代码有效,特别是它可以多次使用。