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

Map(マップ)をforループする方法は、3つあります。
キーと値のペアをループ
1つ目は、キーと値のペアをforループする方法です。
まず、for (Map.Entry<TKey, TValue> entry: map.entrySet()){}
のように、forループの対象にMapから呼び出したentrySet()の戻り値を指定します。
そして、{}内にループ処理を指定します。
ループ処理では、ループ変数のgetKey()でキー、getValue()で値を取得できます。
//TKey=キーの型、TValue=値の型
for (Map.Entry<TKey, TValue> entry: map.entrySet()) {
//ループ処理
//変数「entry」のgetKey()でキー、getValue()で値を取得
}
上記のforループは、entrySet()を呼び出したMap(マップ)をEntryでforループします。
使用例
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);
for (Map.Entry<String, Integer> entry: numbers.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
}
出力:
four:4
one:1
two:2
three:3
five:5
キーのみをループ
2つ目は、キーのみをループする方法です。
まず、for (T key: map.keySet()){}
のように、forループの対象にMapから呼び出したkeySet()の戻り値を指定します。
そして、{}内にループ処理を指定します。
ループ処理では、ループ変数でMapのキーを取得できます。
for (T key: map.keySet()) {
//ループ処理
//変数「key」でキーを取得
}
上記のforループは、keySet()を呼び出したMap(マップ)のキーをforループします。
使用例
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);
for (String key: numbers.keySet()) {
System.out.println(key);
}
}
}
出力:
four
one
two
three
five
値のみをループ
3つ目は、値のみをループする方法です。
まず、for (T value: map.values()){}
のように、forループの対象にMapから呼び出したvalues()の戻り値を指定します。
そして、{}内にループ処理を指定します。
ループ処理では、ループ変数でMapの値を取得できます。
for (T value: map.values()) {
//ループ処理
//変数「value」で値を取得
}
上記のforループは、values()を呼び出したMap(マップ)の値をforループします。
使用例
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);
for (int value: numbers.values()) {
System.out.println(value);
}
}
}
出力:
4
1
2
3
5
まとめ
Map(マップ)をforループする方法は、次の3つです。
- キーと値のペアをループする方法
for (Map.Entry<TKey, TValue> entry: map.entrySet()) { /*ループ処理*/ }
- キーのみをループする方法
for (T key: map.keySet()) { /*ループ処理*/ }
- 値のみをループする方法
for (T value: map.values()) { /*ループ処理*/ }
コメント