Java でクラスのカスタム イテレータを実装する方法について少し混乱しています。基本的に、すでに利用可能な組み込みライブラリを使用せずに ArrayList を作成する必要があります。クラス作成の基本は理解していますが、Iterator をこれらすべてに適合させる方法を理解するのに苦労しています。私は次のものを持っています:
次のような反復可能なインターフェイスを実装するジェネリック クラスを作成しました。
public class MyArrayList<T> implements Iterable<T> {
次に、MyIterator というクラスを作成する必要があります。このクラスは、ドキュメントの文言によればスタンドアロン クラスです。MyIterator という名前の新しいクラスを作成し、 iterator インターフェイスを実装して、次のようにします。
public class MyIterator<T> implements Iterator<T>{
私の混乱は次のとおりです。このドキュメントには、Iterator は独自のクラスにある必要があると書かれていますが、「MyArrayList」のデータ メンバーにアクセスして、たとえば hasNext() と next() を完全に実装するにはどうすればよいでしょうか。基になる配列のデータ メンバーはプライベートであるため (そうあるべきです)、外部クラスがこれらのメソッドを完全に実装する方法がわかりません。必要なものを誤解していますか?別のクラスでは、「MyArrayList」クラスの一部ですが、定義が異なりますか?
私が言ったように、私に何が求められているかを理解していると思いますが、イテレーターがこれらすべてのどこに収まるか正確にはわかりません。