ビデオ: 【day23】09 尚硅谷 Java语言高级 迭代器Iterator的执行原理 2024
Javaイテレータはコレクションの値を1つずつ吐き出します。コレクションから値を取得するには、イテレータの
次の
メソッドを呼び出します。コレクションにそれ以上の値が含まれているかどうかを調べるには、イテレータの
hasNext
メソッドを呼び出します。以下のコードでは、イテレータを使用して人々の名前を表示しています。
コレクションを反復処理するためのコードです。
インポート静的Java。ラング。システム。でる;
import java。 util。イテレータ;
import java。 util。スキャナ;
import java。 io。ファイル;
import java。 io。 IOException;
import java。 util。配列リスト;
public class ShowNames { public static void main(String args [])throws IOException {
ArrayList
people =新しいArrayList <>();
while(diskScanner。hasNext()){
人。 add(diskScanner。nextLine());
}
人。削除(0);
人。 add(2、 "Jim Newton");
イテレータイテレータ=人々。 iterator();
while(イテレータ。hasNext()){
<! - 3 - >
}
diskScanner。閉じる();
}
}
の拡張
を上記の太字のコードで置き換えることができます。最初の太字のコード行は
people
コレクションのイテレータを作成します。 2番目と3番目の行は、イテレータの
hasNext
メソッドと
next
メソッドを呼び出して、
people
コレクションに格納されたすべてのオブジェクトを取得します。これらの行には、
人物
コレクションの各値が表示されます。
どちらが良いですか?拡張された
ループまたは反復子? Javaプログラマは、
forループがより少ない手荷物を必要とするため、
for
ループを拡張することを好んでいます - コードの1行から次の行に運ぶオブジェクトはありません。しかし、最もプログラミングが強化された機能は、アップグレード、合理化、調整、および他の方法で再構成することができます。コードを改善する方法はありません。