ホームページ >Java >&#&チュートリアル >Javaのイテレータの詳しい説明
Java はイテレーターを使用して、さまざまなコンテナーに共通の操作インターフェイスを提供します。この記事では、Java でのイテレーターの使用分析を共有します。必要な方は参考にしてください。
イテレーターとは何ですか
Java では、多くのデータ コンテナーがあり、その操作には多くの共通点があります。 Java はイテレータを使用して、さまざまなコンテナに共通の操作インターフェイスを提供します。これにより、コンテナのトラバーサル操作がその特定の基礎となる実装から分離され、分離効果が得られます。
Iterator インターフェースには 3 つのメソッドが定義されています:
Java コレクション クラスの Map インターフェースの下にある関連クラスは、Collection インターフェースの関連クラスのように get() メソッドを実装しません。 get() メソッドを直接使用してオブジェクト内のデータを取得する方法はありませんが、Java 自体がデータを走査する別の方法、つまり Iterator を使用して走査および走査を行うことができます。読み取りデータ、それは本質的にメソッドではなく、単なる設計パターンであり、オブジェクト、つまり「軽量」オブジェクトです。以下に、さまざまなインターフェイスでの Iterator の使用方法を説明します。
(1) Collection インターフェイスでの Iterator の使用。
Collection インターフェースの関連クラスは get() メソッドを実装していますが、それらに対して Iterator を使用するのが適切であることに変わりはなく、Collection で Iterator を使用する 2 つの方法について説明します。 while() ループと連携してトラバーサル出力を実現します:
ArrayList list = new ArrayList(); //此处省略list的具体赋值过程 Iterator it = list.iterator(); while(it.hasNext()){ System.out.println(it.next()); }
while() の判定条件 it.hasNext() は、次の要素があるかどうかを判定するために使用されます。ループしてステートメントを出力します。 it.next() は、「ポインター」を 1 つ前の位置に戻すだけでなく、出力のために現在の要素を返すこともできます。
2. for() ループを使用してトラバーサル出力を実現します:
ArrayList list = new ArrayList(); //此处省略list的赋值过程 for(Iterator it = list.iterator();it.hasNext();){ System.out.println(it.next()); }
for() ループでの使用原理は while() と同じなので、ここでは詳しく説明しません。
以下では、イテレーターを使用する 2 つの主な方法について説明するために、例として HashMap を使用します。
1. while() との組み合わせ
ArrayList list = new ArrayList(); //此处同样省略list的赋值过程 for(Object array:list){ System.out.println(array); }// toString メソッドの書き換えはここでは焦点ではないため、出力をよりフォーマットしたい場合は、toString() メソッドを書き換えることができます。という記事があるので、今は議論しないでおこう。
Map インターフェースでのイテレーター アプリケーション メソッドは、Collection でのイテレーター メソッドとは少し異なります。entrySet() メソッドは、キーと値のペア全体を返すために使用されます。
2. for() との組み合わせ
HashMap<K,V> myMap = new HashMap<K,V>(); //省略myMap的的赋值过程 Iterator<Map.Entry<K,V> it=myMap.entrySet().iterator(); while(it.hasNext()){ System.out.println(it.next()); }上記にはいくつかの例があるため、ここで原理を説明し続ける必要はありません。
同様に、Iterator の代わりに for each を使用します。
HashMap<K,V> myMap=new HashMap<K,V>(); //省略myMap的赋值过程 for(Iterator<Map.Entry<K,V>> it=myMap.entrySet().iterator();it.hasNext();){ System.out.println(it.next()); }for each また、entrySet() メソッドについての質問がある場合は、この記事を参照してください。あまり説明しないでください。 結論: Iterator クラスは java.util パスにカプセル化されているため、Iterator を使用するには、java.util.Iterator をインポートするか、java.util.*;
概要
以上がJavaのイテレータの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。