拡張for文を用いたListの繰り返し処理は初学者でも覚えやすいですね。
for (String item : list) { System.out.println(item); }
一方でMapの繰り返し処理が分かりづくてMapを避ける初学者がいます。
Mapはとても便利なので避けてよいことはありません。基本的な繰り返し処理3パターンを覚えて活用しましょう。
繰り返し処理パターン
前提
- 以下のようなmapがあったと仮定する。
Map<String, String> map = new HashMap<>(); map.put("foo1", "bar1"); map.put("foo2", "bar2");
パターン1. キーと値の両方を処理
- Map#entrySetを使ってキーと値の組み合わせ(Map.Entry)の一覧を取得する。
- Map.Entryのキーと値はそれぞれMap.Entry#getKey、Map.Entry#getValueで取得する。
for (Map.Entry<String, String> entry : map.entrySet()) { System.out.println(entry.getKey() + " : " + entry.getValue()); }
パターン2. キーのみ処理
- Map#KeySetを使ってキーの一覧を取得する。
for (String key : map.keySet()) { System.out.println(key); }
パターン3. 値のみ処理
- Map#valuesを使って値の一覧を取得する。
for (String val : map.values()) { System.out.println(val); }