foreach


JDK 1.5は、拡張forサイクルを追加し、配列およびセット内のデータへのアクセスを実現するために使用できます。
        拡張forループの構文:
                for(元素の種類    変数名:循環する配列または集合名){……}
        構文では、最初の要素タイプは配列または集合中の要素のタイプで、変数名は循環時に各要素の値を保存するために使用され、コロンの後に循環する配列または集合名があります。
        foreach文はfor文の特殊な簡略化バージョンですが、foreach文は完全にfor文に取って代わることはできません。しかし、任意のforeach文はすべてfor文に書き換えられます。
        一、foreach配列と集合のエルゴード
import java.util.Arrays;
import java.util.List; 
import java.util.ArrayList; 

public class TestArray { 
    public static void main(String args[]) { 
        TestArray test = new TestArray(); 
        test.test1(); 
        test.listToArray(); 
        test.testArray3(); 
    } 

    /** 
    * foreach         
    */ 
    public void test1() { 
        //           
         int arr[] = {2, 3, 1}; 
        System.out.println("----1----        "); 
        for (int x : arr) { 
            System.out.println(x); //           
         } 

        //      
         Arrays.sort(arr); 

        //  java   for each       
         System.out.println("----1----        "); 
        for (int x : arr) { 
           System.out.println(x); //           
         } 
    } 

    /** 
    *           
    */ 
    public void listToArray() { 
        //  List      
         List<String> list = new ArrayList<String>(); 
        list.add("1"); 
        list.add("3"); 
        list.add("4"); 

       //  froeach         
        System.out.println("----2----froeach        "); 
       for (String x : list) { 
          System.out.println(x); 
       } 

       // ArrayList      
        Object s[] = list.toArray(); 

       //  froeach         
        System.out.println("----2----froeach               "); 
       for (Object x : s) { 
          System.out.println(x.toString()); //           
        } 
    } 

    /** 
    * foreach         
    */ 
    public void testArray2() { 
        int arr2[][] = {{4, 3}, {1, 2}}; 
        System.out.println("----3----foreach        "); 
        for (int x[] : arr2) { 
            for (int e : x) { 
                System.out.println(e); //           
             } 
        } 
    } 

    /** 
    * foreach       
    */ 
    public void testArray3() { 
        int arr[][][] = { 
            {{1, 2}, {3, 4}}, 
            {{5, 6}, {7, 8}} 
        }; 

        System.out.println("----4----foreach        "); 
        for (int[][] a2 : arr) { 
            for (int[] a1 : a2) { 
                for (int x : a1) { 
                    System.out.println(x); 
                } 
            } 
        } 
    } 
}
 
 
 
実行結果:
----1----並べ替え前の1次元配列 2 3 1 ----1----並べ替え後の1次元配列 1 2 3 ----2----froeach文出力セット要素 1 3 4 ----2−−−−froeach文出力セット変換による配列要素 1 3 4 ----4−−−−−foreach出力三次元配列試験 1 2 3 4 5 6 7 8 Process finished with exit code 0