プログラミング初心者がアーキテクトっぽく語る

見苦しい記事も多数あるとは思いますが訂正しつつブログと共に成長していければと思います

Mapの繰り返し処理基本3パターン

拡張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);
}