Java では、 イテレーター Java カーソルの 1 つです。 Javaイテレータ Java オブジェクト コンポーネントのコレクション全体を 1 つずつ反復処理するために実践されるインターフェイスです。 Java 1.2 Collection フレームワーク以降、Java プログラミング言語では無料で使用できます。これは java.util パッケージに属します。
Java Iterator は Java 1.2 で導入されましたが、Collection オブジェクトの要素を横断するために使用できる最も古いツールではありません。 Java プログラミング言語で最も古い Iterator は、Enumerator より前の Iterator です。 Java Iterator インターフェイスは、ArrayList などのアクセス可能なコレクションを横断するために最初に実践されていた列挙型イテレータを継承します。
Java イテレータは、 ユニバーサルカーソル Java のコレクション フレームワークのすべてのクラスに適しているためです。 Java Iterator は、READ や REMOVE などの操作にも役立ちます。 Java Iterator インターフェイスと列挙型イテレータ インターフェイスを比較すると、Java Iterator で使用できるメソッドの名前の方が正確で使いやすいと言えます。
Java イテレータの利点
Java のイテレーターは、その数多くの利点により非常に普及しました。 Java Iterator の利点は次のとおりです。
- ユーザーは、これらのイテレータを Collection フレームワークの任意のクラスに適用できます。
- Java Iterator では、読み取り操作と削除操作の両方を使用できます。
- ユーザーが for ループを使用している場合、コレクションを最新化 (追加/削除) することはできませんが、Java イテレーターを使用している場合は、コレクションを更新するだけで済みます。
- Java イテレータは、コレクション API のユニバーサル カーソルとみなされます。
- Java イテレータのメソッド名は非常に簡単で、使い方も非常に簡単です。
Java イテレータの欠点
Java Iterator には数多くの利点がありますが、さまざまな欠点もあります。 Java Iterator の欠点を以下に示します。
- Java Iterator は、順方向の反復のみを保持します。簡単に言うと、Java イテレータは単方向イテレータです。
- 新しいコンポーネントの置き換えと拡張は、Java Iterator によって承認されていません。
- CRUD 操作では、Java イテレーターは CREATE や UPDATE などのさまざまな操作を保持しません。
- Spliterator と比較すると、Java Iterator は並列パターンでの要素の走査をサポートしていません。これは、Java Iterator が Sequential 反復のみをサポートしていることを意味します。
- Spliterator と比較すると、Java Iterator は大量のデータを走査するためのより信頼性の高い実行をサポートしていません。
Javaイテレータの使い方は?
ユーザーが Java Iterator を使用する必要がある場合、トラバースしたいオブジェクトのコレクションから Iterator インターフェイスのインスタンスを作成することが必須です。その後、受信したイテレーターは、ユーザーがオブジェクトのコレクションの各要素を確実に横断できるように、基礎となるコレクション内のコンポーネントの追跡を維持します。
ユーザーが、そのコレクションにつながるイテレーターをトラバースしているときに基になるコレクションを変更すると、通常、イテレーターはそれを確認し、次回ユーザーがイテレーターから次のコンポーネントを取得しようとしたときに例外をスローします。
Javaのバイナリツリー
Java イテレータ メソッド
次の図は、Java Iterator インターフェイスのクラス図を完全に示しています。これには、次の合計 4 つのメソッドが含まれています。
- hasNext()
- 次()
- 取り除く()
- forEachRemaining()
の forEachRemaining() メソッドは Java 8 で追加されました。各メソッドについて詳しく説明します。
反復内に要素がもう残っていない場合は、 next() メソッドを呼び出す必要はありません。簡単に言えば、このメソッドは next() メソッドを呼び出すかどうかを決定するために使用されると言えます。
Java イテレータの例
ここで、Java プログラムを実行して、Java Iterator インターフェイスの利点を説明します。以下のコードは都市名の ArrayList を生成します。次に、ArrayList の iterator () メソッドを適用してイテレータを初期化します。その後、リストを走査して各要素を表します。
JavaIteratorExample.java
import java.io.*; import java.util.*; public class JavaIteratorExample { public static void main(String[] args) { ArrayList cityNames = new ArrayList(); cityNames.add('Delhi'); cityNames.add('Mumbai'); cityNames.add('Kolkata'); cityNames.add('Chandigarh'); cityNames.add('Noida'); // Iterator to iterate the cityNames Iterator iterator = cityNames.iterator(); System.out.println('CityNames elements : '); while (iterator.hasNext()) System.out.print(iterator.next() + ' '); System.out.println(); } }
出力:
CityNames elements: Delhi Mumbai Kolkata Chandigarh Noida
留意事項
- Java Iterator は、Java 1.2 Collection フレームワークの Java プログラミング言語に追加されたインターフェイスです。これは java.util パッケージに属します。
- これは、コレクション フレームワークのオブジェクトを横断するために使用される Java カーソルの 1 つです。
- Java Iterator は、コレクション オブジェクトのコンポーネントを 1 つずつ反復するために使用されます。
- Java イテレータは、コレクション フレームワークのすべてのクラスに適しているため、Java のユニバーサル カーソルとしても知られています。
- Java Iterator は、READ や REMOVE などの操作もサポートします。
- Iterator クラスのメソッド名は、Enumeration Iterator のメソッド名に比べて非常にシンプルで使いやすいです。