拡張型forサイクルと通常のforサイクルの使用上の違い

2271 ワード

集合や配列を巡るのは普段からよく使われていますが、これまで本当にまとめたことはありませんでしたが、今整理してみました.
全体的には、
拡張型forループは使いやすく、コードも簡単ですが、インデックスを使わずにコレクション内の要素を操作する場合は、この方法をお勧めします.
通常のforループでは、インデックスを使用して他の操作を行う必要がある場合は、これを推奨します.
詳細は次のとおりです.
1、違い:
強化forループには、集合や配列などの遍歴されたターゲットが必要です.
通常forループ配列を巡る場合はインデックスが必要です.
拡張forループは下付きスケールを取得できないので、配列を巡回するときは通常のforループを使用することが望ましい.
2、特徴:
簡潔に書く.
集合を巡回し、集合要素のみを取得し、集合を操作することはできない.反復器の略記形式のようなものであるが、反復器は要素をremove操作することができる(ListIteratorは削除・変更できる操作).
3、書式:
for(データ型変数名:遍歴された集合(collection)または配列){
じっこうぶん
}
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ForTest {

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                /* 1.         */  
        int array[] = { 1,2,3,4,5,6,7,8,9};  
  
        //   for    
        for (int item : array) {  
            System.out.println(item);  
        }  
  
        //   for  
        for (int i = 0; i < array.length; i++)  
            System.out.println(array[i]);  
  
        /* 2.         */  
        int array2[][] = {{1,2,3}, {4,5,6}, {7,8,9} };  
          
        //   for    
        for (int arr[] : array2) {  
            for (int item : arr) {  
                System.out.println(item);  
            }  
        }  
  
        //   for    
        for (int i = 0; i < array2.length; i++) {  
            for (int j = 0; j < array2[i].length; j++) {  
                System.out.println(array2[i][j]);  
            }  
        }  
  
        /* 3.List     */  
        List list = new ArrayList();  
        list.add(" ");  
        list.add(" ");  
        list.add(" ");  
        list.add(" "); 
          
        //   for    
        for (String item : list){  
            System.out.println(item);             
        }  
                  
        //  for  
        for (int i = 0; i < list.size(); i++) {  
            System.out.println(list.get(i));  
        }  
  
        //       
        Iterator it = list.iterator();
        while (it.hasNext()) {  
            System.out.println(it.next());  
        }  
        }
}