Java 拡張for文 配列やコレクションをループで取得

目次

拡張for文とは

拡張for文の構造

カウントする変数を使わないため拡張for文と呼ばれます。
配列やコレクションの値をループで順番に取得します。

for( データ型 変数1 : 配列やコレクションの変数2 ){
  実行される処理(変数1を使用する)
}

配列の値を取得

public class Test1 {
	public static void main(String[] args) {
		int array[] = {1, 2, 3};

		for (int i: array){
		  System.out.println(i); // 1 2 3が出力される
		}
 	}
}

3行目は、配列です。
5行目のarrayは配列の変数です。
5行目のiは配列の値で6行目でそれぞれ出力されます。

 

リストの値を取得

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Test1 {
	public static void main(String[] args) {
		List<String> c = new ArrayList<>(Arrays.asList("1","2","3"));

		for (String a : c) {
			System.out.println(a); // 1 2 3が出力される
		}
	}
}

7行目は、リストです。
9行目のcはリストの変数です。
9行目のaはリストの値で10行目でそれぞれ出力されます。

 

マップのキーと値を取得

import java.util.HashMap;
import java.util.Map;

public class Test1 {
	public static void main(String[] args) {
		Map<String,String> color = new HashMap<>();
		color.put("a", "red");
		color.put("b", "yellow");
		color.put("c", "blue");
		
		for (Map.Entry<String, String> c1 : color.entrySet()) {
			System.out.println(c1.getKey());// a b c
			System.out.println(c1.getValue());// red yellow blue
		}
	}
 }

6行目は、マップです。
11行目のcolorはマップの変数です。
11行目のc1はマップの値で12,13行目でそれぞれ出力されます。
12行目はマップのキーで、13行目はマップの値です。

 

ループを抜ける(break)

breakでループを抜けるサンプルです。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Test1 {
    public static void main(String[] args) {
		List<String> c1 = new ArrayList<>(Arrays.asList("1","2","3"));
		
		for (String a : c1) {
			if (a == "2"){
				break;
			}
			System.out.println(a); // 1が出力される
		}
    }
}

11行目は、breakで拡張for文のループから抜けます。
結果「1」のみ出力されます。

 

ループの先頭に戻る(continue)

continueでループの先頭に戻るサンプルです。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Test1 {
    public static void main(String[] args) {
		List<String> c1 = new ArrayList<>(Arrays.asList("1","2","3"));
		
		for (String a : c1) {
			if (a == "2"){
				continue;
			}
			System.out.println(a); // 1 3が出力される
		}
    }
}

11行目は、continueで拡張for文の先頭(9行目)に戻ります。
結果「1」と「3」が出力されます。

関連の記事

Java for文 処理を繰り返す(break/continue)
Java 配列の仕組みと使い方のサンプル
Java 配列からリスト・セットを作成(addAll/asList)

△上に戻る