我对如何在 Java 中为类实现自定义迭代器有点困惑。我需要在不使用我已经可用的内置库的情况下创建一个 ArrayList。我了解创建类的基础知识,但我无法理解如何让迭代器适应所有这些。我有以下内容:
我创建了一个实现可迭代接口的通用类,它看起来像这样:
public class MyArrayList<T> implements Iterable<T> {
然后我必须创建一个名为 MyIterator 的类,根据文档的措辞,它是一个独立的类。这看起来很简单,我创建了一个名为 MyIterator 的新类并让它实现了迭代器接口,所以它看起来像这样:
public class MyIterator<T> implements Iterator<T>{
我的困惑在于以下几点。该文档说迭代器需要在它自己的类中,但是我如何访问“MyArrayList”中的数据成员以完全实现 hasNext() 和 next() 例如。由于底层数组中的数据成员是私有的(它们应该是私有的),我看不到外部类如何完全实现这些方法。我误解了需要什么吗?通过单独的类,它仍然是“MyArrayList”类的一部分,但定义不同吗?
我希望这会有所帮助,正如我所说,我想我理解对我的要求我只是不确定我的迭代器适合所有这些。