構文
for (Object objectname : preArrayList(一个Object对象的列表)) {}
例
package com.kuaff.jdk5; import java.util.*; import java.util.Collection; public class Foreach { private Collection c = null; private String[] belle = new String[4]; public Foreach() { belle[0] = "西施"; belle[1] = "王昭君"; belle[2] = "貂禅"; belle[3] = "杨贵妃"; c = Arrays.asList(belle); } public void testCollection() { for (String b : c) { System.out.println("曾经的风化绝代:" + b); } } public void testArray() { for (String b : belle) { System.out.println("曾经的青史留名:" + b); } } public static void main(String[] args) { Foreach each = new Foreach(); each.testCollection(); each.testArray(); } }
コレクション型と配列型の両方に、foreach 構文を通じてアクセスできます。上の例では、以前は配列に順番にアクセスする必要がありましたが、これは非常に面倒でした:
for (int i = 0; i < belle.length; i++) { String b = belle[i]; System.out.println("曾经的风化绝代:" + b); }
今では、次の簡単なステートメントだけが必要です:
for (String b : belle) { System.out.println("曾经的青史留名:" + b); }
コレクションにアクセスする効果はより明白です。以前は、コレクションにアクセスするためのコード:
for (Iterator it = c.iterator(); it.hasNext();) { String name = (String) it.next(); System.out.println("曾经的风化绝代:" + name); }
今では、次のステートメントのみが必要です:
for (String b : c) { System.out.println("曾经的风化绝代:" + b); }
Foreach は全能ではなく、次の欠点もあります:
前のコードでは、削除操作を実行できます。イテレータを介して。
for (Iterator it = c.iterator(); it.hasNext();) { itremove() }
ただし、現在の foreach バージョンでは、コレクションに含まれるオブジェクトを削除できません。オブジェクトを置き換えることもできません。
同時に、複数のコレクションを並行して foreach することはできません。したがって、コードを書くときは、状況に応じてコードを使用する必要があります。
Java プログラムでの foreach の使用例に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。