|
リストをトラバースする方法は3つあります
リスト<A>リスト = 新しいArrayList<A>(); list.add(new A()); list.add(new A()); ...
最初のタイプ: for(Iterator<A> it = list.iterator(); it.hasNext(); ) { .... } この方法はサイクルの中にあります 同時に、快楽の過程で要素を削除したい場合、it.remove メソッドしか呼び出せません。list.remove メソッドを使うことはできません。使うと同時アクセスのエラーが発生します。 しかし、互換性は最高で、コレクションコレクションに適しています
第二のタイプ: for(A a : list) { ..... } 各メソッドの は依然としてイテレーターであり、最初のメソッドは内部で呼び出され、スープは変更されません。また、この循環メソッドには他にも制限があるため、使用は推奨されません 互換性が低いJK1.5以上でのみ使用可能です。このセットを使うのが最適です。
三つ目のタイプ: for(int i=0; i<list.size(); i++) { A a = list.get(i); ... } フォー・ループの場合、リストコレクションの内容を走査するのはリストの場合のみ機能します。なぜならリストは順序付けられたコレクションだからです 内部はロックされておらず、これが最も効率的な方法ですが、マルチスレッドを書く際には並行操作の問題を考慮する必要があります! SetコレクションのトラバースはListと同じ方法ですが、Setコレクションにはget()メソッドがないため、forループでSetコレクションを反復することはできません。 しかし、強化でループさせることは可能です トラバース・ザ・セット・コレクション Set<String> set = new HashSet<String>(); set.add("qqq"); set.add("www"); set.add(「eee」); set.add("rrr");
for(String s : set){ System.out.println("set="+s); }
|