異なるfor書き方-J 2 SE 1.5の新特性を体験するForサイクル


最初のforサイクル
配列を巡る場合、このサイクルは一般的にこのような書き方をします。
リスト1:行列を巡る伝統的な方法
Javaコード
  • /* 行列を作成 */  
  • int[] integers = {1, 2, 3, 4}  
  • /* 巡回開始 */  
  • for (int j = 0; j < integers.length j++) {  
  • int i = integers[j];  
  • System.out.println(i);  
  • }  
  • /*        */
    int[] integers = {1, 2, 3, 4};
    /*      */
    for (int j = 0; j < integers.length; j++) {
    int i = integers[j];
    System.out.println(i);
    }
    Collectionオブジェクトを巡回する場合、このサイクルは通常このような形をとる。
    明細書2:Collectionオブジェクトを巡る伝統的な方法
    Javaコード
  • /* コレクションを作る */  
  • String[] ストリングス = {A} 「B」、 「C」、 “D”}  
  • Collection ストリングスリスト = java.util.Arays.asList(strigs)  
  • /* 巡回開始 */  
  • for (Iterator itr = stingList.iterator() itr.has Next(); {  
  • Object str = itr.next()  
  • System.out.println(str)  
  • }  
  • /*     Collection */
    String[] strings = {"A", "B", "C", "D"};
    Collection stringList = java.util.Arrays.asList(strings);
    /*      */
    for (Iterator itr = stringList.iterator(); itr.hasNext();) {
    Object str = itr.next();
    System.out.println(str);
    }
    Java言語の最新バージョンであるJ 2 SE 1.5には、別の形式のforサイクルが導入されている。このような形式のfor循環によって、今はより簡単な方法で遍歴する仕事ができます。
    第二のforサイクル
    厳密には言えませんが、Javaの第二のforサイクルは基本的にこのようなフォーマットです。
    for(巡回変数型循環変数名:巡回対象)循環体
    このような文法によって、配列を巡回して操作すれば、このような書き方ができます。
    リスト3:配列を巡回する簡単な方法
    Javaコード
  • /* 行列を作成 */  
  • int[] integers = {1, 2, 3, 4}  
  • /* 巡回開始 */  
  • for (int i : integers {  
  • System.out.println(i)/* 「1」、「2」、「3」、「4」を順次出力します。 */  
  • }  
  • /*        */
    int[] integers = {1, 2, 3, 4};
    /*      */
    for (int i : integers) {
    System.out.println(i);/*     “1”、“2”、“3”、“4” */
    }
    ここで使っているforサイクルは、コンパイルの間にこのような形で見られます。
    リスト4:配列を巡回する簡単な方法の等価コード
    Javaコード
  • /* 行列を作成 */  
  • int[] integers = {1, 2, 3, 4}  
  • /* 巡回開始 */  
  • for (int 変数名 = 0; 変数名 < integers.length 変数名甲+) {  
  • System.out.println(変数名甲)/* 「1」、「2」、「3」、「4」を順次出力します。 */  
  • }  
  • /*        */
    int[] integers = {1, 2, 3, 4};
    /*      */
    for (int      = 0;      < integers.length;     ++) {
    System.out.println(    );/*     “1”、“2”、“3”、“4” */
    }
    ここの「変数名甲」はコンパイラによって自動的に生成され、混乱しない名前です。
    また、Collectionの操作を経ると、このような書き方ができます。
    明細書5:Collectionを巡回する簡単な方法
    Javaコード
  • /* コレクションを作る */  
  • String[] ストリングス = {A} 「B」、 「C」、 “D”}  
  • Collection リスト = java.util.Arays.asList(strigs)  
  • /* 巡回開始 */  
  • for (Object str : リスト) {  
  • System.out.println(str)/* 「A」、「B」、「C」、「D」を順次出力します。 */  
  • }  
  • /*     Collection */
    String[] strings = {"A", "B", "C", "D"};
    Collection list = java.util.Arrays.asList(strings);
    /*      */
    for (Object str : list) {
    System.out.println(str);/*     “A”、“B”、“C”、“D” */
    }
    ここで使っているforサイクルは、コンパイル中にこのような形で見られます。
    明細書6:Collectionを巡回する簡単な方法の等価コード
    Javaコード
  • /* コレクションを作る */  
  • String[] ストリングス = {A} 「B」、 「C」、 “D”}  
  • Collection ストリングスリスト = java.util.Arays.asList(strigs)  
  • /* 巡回開始 */  
  • for (Iterator 変数名乙 = list.iterator() 変数名乙.has Next(); {  
  • System.out.println(変数名乙.next()/* 「A」、「B」、「C」、「D」を順次出力します。 */  
  • }   
  • /*     Collection */
    String[] strings = {"A", "B", "C", "D"};
    Collection stringList = java.util.Arrays.asList(strings);
    /*      */
    for (Iterator      = list.iterator();     .hasNext();) {
    System.out.println(    .next());/*     “A”、“B”、“C”、“D” */
    } 
    ここの「変数名乙」もコンパイラによって自動的に生成され、混乱しない名前です。
    コンパイルの間、J 2 SE 1.5のコンパイラはこの形式のfor循環を対応の伝統的な形式と見なしていますので、性能面の問題が心配される必要はありません。