どうも、ちょげ(@chogetarou)です。
Map(マップ)をforEach()でループする方法を紹介します。
方法

Map(マップ)をforEach()でループする方法は、3つあります。
キーと値をループ
1つ目は、キーと値をループする方法です。
まず、MapからforEach()を呼び出します。
foEach()の引数に、2つの引数を持つラムダ式を指定します。
そして、ラムダ式の{}内に、ループ処理を指定します。
ループ処理では、ラムダ式の第1引数でキー、第2引数で値を取得できます。
map.forEach((key,value) -> {
//ループ処理
//第1引数「key」でキー、第2引数「value」で値を取得
});
上記のforEach()は、呼び出したMap(マップ)をループします。
使用例
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
Map<String, Integer> numbers = new HashMap<String, Integer>();
numbers.put("one", 1);
numbers.put("two", 2);
numbers.put("three", 3);
numbers.put("four", 4);
numbers.put("five", 5);
numbers.forEach((key,value) -> {
System.out.println(key + ":" + value);
});
}
}
出力:
four:4
one:1
two:2
three:3
five:5
キーのみをループ
2つ目は、キーのみをループする方法です。
まず、MapからkeySet()を呼び出します。
keySet()からforEach()を呼び出します。
forEach()の引数に、引数を1つ持つラムダ式を指定します。
そして、ラムダ式の{}内にループ処理を指定します。
ループ処理では、引数でキーを取得できます。
map.keySet().forEach((key) -> {
//ループ処理
//引数「key」でキーを取得
});
上記のforEach()は、keySet()を呼び出したMap(マップ)のキーをループします。
使用例
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
Map<String, Integer> numbers = new HashMap<String, Integer>();
numbers.put("one", 1);
numbers.put("two", 2);
numbers.put("three", 3);
numbers.put("four", 4);
numbers.put("five", 5);
numbers.keySet().forEach((key) -> {
System.out.println(key);
});
}
}
出力:
four
one
two
three
five
値のみをループ
3つ目は、値のみをループする方法です。
まず、Mapからvalues()を呼び出します。
valeus()からforEach()を呼び出します。
forEach()の引数に、引数を1つ持つラムダ式を指定します。
そして、ラムダ式の{}内にループ処理を指定します。
ループ処理では、引数で値を取得できます。
map.values().forEach((value) -> {
//ループ処理
//引数「value」で値を取得
});
上記のforEach()は、values()を呼び出したMap(マップ)の値をループします。
使用例
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
Map<String, Integer> numbers = new HashMap<String, Integer>();
numbers.put("one", 1);
numbers.put("two", 2);
numbers.put("three", 3);
numbers.put("four", 4);
numbers.put("five", 5);
numbers.values().forEach((value) -> {
System.out.println(value);
});
}
}
出力:
4
1
2
3
5
まとめ
Map(マップ)をforEach()でループする方法は、次の3つです。
- キーと値をループする方法
map.forEach((key,value) -> { /*ループ処理*/ }); - キーのみをループする方法
map.keySet().forEach((key) -> { /*ループ処理*/ }); - 値のみをループする方法
map.values().forEach((value) -> { /*ループ処理*/ });





コメント