Java のカスタムイテレータ
このガイドでは、Java でカスタムイテレータを作成する方法を学習します。Java のイテレータは非常に便利なツールです。foreach
ループの代わりと見なすことができます。イテレータは、開発者が明確に定義されたコレクションを更新するのを支援するいくつかの関数を備えています。Java でカスタムイテレータを作成する方法を見てみましょう。
Java のイテレータの詳細についてはこちらを参照します。
Java のカスタムイテレータ
Java のカスタムイテレータは、開発者がいくつかの複雑なデータ構造を特徴とする問題を解決するのに役立ちます。基本的に、イテレータ
を実装するクラスを取得し、その側面をオーバーライドします。たとえば、hasNext()
、next()
、remove()
などの独自の命令で関数をオーバーライドできます。次のコードを見てください。
import java.util.Iterator; // Iterator Import
class CustomList<Type> implements Iterable<Type> {
private Type[] arrayList;
private int Size;
public CustomList(Type[] newArray) { // Constructor Which Accepts Array...
this.arrayList = newArray;
this.Size = arrayList.length;
}
@Override
public Iterator<Type> iterator() {
// OverRiding Default List Iterator //
Iterator<Type> it = new Iterator<Type>() {
private int currentIndex = 0;
@Override
public boolean hasNext() {
// OverRiding Default hasNext Method//
return currentIndex < Size && arrayList[currentIndex] != null;
}
@Override
public Type next() {
// OverRiding Default next Method//
return arrayList[currentIndex++];
}
@Override
public void remove() {
// OverRiding Default Remove Method.
throw new UnsupportedOperationException();
}
};
return it;
}
}
public class Main {
public static void main(String args[]) {
String[] data = new String[] {"Tim Cook", "Mark Zuckerberg", "Elon Musk", "Jeff Bezos"};
CustomList<String> Listt = new CustomList<String>(data);
// creating a CustomList Object Which OverRides.
// The Iterator and Use The Custom Iterator Which is Defined in The Code.
Iterator temp = Listt.iterator(); // getting Custom iterator from List.
while (temp.hasNext()) { // custom hasNext() Method
String value = temp.next().toString(); // Custom Method Return The Current Index
System.out.print(value + ", ");
}
}
}
出力:
Tim Cook, Mark Zuckerberg, Elon Musk, Jeff Bezos,
上記のコード例では、Java でカスタムイテレータを作成しています。まず、ArrayList
を作成し、それに size
を付けました。コンストラクターを使用して、これらの両方の変数に値を割り当てました。Iterator<Type>
の iterator()
という名前の関数を作成しました。この関数内では、イテレータ
のすべての関数をオーバーライドできます。
main 関数では、リストを作成し、そこからカスタムイテレータを取得して、temp
に格納するだけです。これが、Java でカスタムイテレータを作成する方法です。オーバーライド中は変更を加えていませんが、この方法を使用してイテレータを自由にカスタマイズできます。
Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.
LinkedIn