Java で HashMap を繰り返し処理する方法

Mohammad Irfan 2023年10月12日
  1. Java の entrySet() メソッドを用いた HashMap の繰り返し処理
  2. Java の foreach を用いた HashMap の繰り返し処理
  3. Java の keySet() メソッドを用いた HashMap の繰り返し処理
  4. Java の forEach() メソッドを用いた HashMap の繰り返し処理
  5. Java の streamforEach() メソッドを用いた HashMap の繰り返し処理
Java で HashMap を繰り返し処理する方法

このチュートリアルでは、Java で HashMap を繰り返し処理する方法と、それを理解するためのコード例を紹介します。

HashMap を繰り返し処理する方法はいくつかありますが、ここでは keySet()entrySet()forEach() メソッドなどを利用します。それでは、例を見てみましょう。

Java の entrySet() メソッドを用いた HashMap の繰り返し処理

マップに含まれるマッピングのセットビューを取得するには、entrySet() メソッドを用います。セットされたビューをイテレータに集め、while ループを使って繰り返し処理を行う。以下の例を参照してください。

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

public class SimpleTesting {
  public static void main(String[] args) {
    Map<Integer, Integer> map = new HashMap<>();
    map.put(2, 1020);
    map.put(3, 300);
    map.put(1, 100);
    map.put(5, 500);
    Iterator it = map.entrySet().iterator();
    while (it.hasNext()) {
      Map.Entry<Integer, Integer> entry = (Map.Entry) it.next();
      System.out.println(entry.getKey() + " = " + entry.getValue());
    }
  }
}

出力:

1 = 10
2 = 1020
3 = 300
5 = 500

Java の foreach を用いた HashMap の繰り返し処理

これもまた、HasMap を繰り返し処理するための解決策です。ここでは、HashMap の要素を繰り返し処理するために for-each ループを使用します。以下の例を参照してください。

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

public class SimpleTesting {
  public static void main(String[] args) {
    Map<Integer, Integer> map = new HashMap<>();
    map.put(2, 1020);
    map.put(3, 300);
    map.put(1, 100);
    map.put(5, 500);
    for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
      System.out.println(entry.getKey() + " = " + entry.getValue());
    }
  }
}

出力:

1 = 10
2 = 1020
3 = 300
5 = 500

Java の keySet() メソッドを用いた HashMap の繰り返し処理

keySet() メソッドは、すべてのキーを収集してセットを作成し、それを用いて HashMap の要素を繰り返し処理することができます。以下の例を参照してください。

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

public class SimpleTesting {
  public static void main(String[] args) {
    Map<Integer, Integer> map = new HashMap<>();
    map.put(2, 1020);
    map.put(3, 300);
    map.put(1, 100);
    map.put(5, 500);
    for (Integer key : map.keySet()) {
      System.out.println(key + " = " + map.get(key));
    }
  }
}

出力:

1 = 10
2 = 1020
3 = 300
5 = 500

Java の forEach() メソッドを用いた HashMap の繰り返し処理

HashMap の要素を繰り返し処理するには、forEach() メソッドを用いることができます。forEach() メソッドは Java 8 で導入された新しいメソッドで、IteratableStream インターフェースで利用できます。以下の例を参照してください。

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

public class SimpleTesting {
  public static void main(String[] args) {
    Map<Integer, Integer> map = new HashMap<>();
    map.put(2, 1020);
    map.put(3, 300);
    map.put(1, 100);
    map.put(5, 500);
    map.forEach((key, value) -> { System.out.println(key + " = " + value); });
  }
}

出力:

1 = 10
2 = 1020
3 = 300
5 = 500

Java の streamforEach() メソッドを用いた HashMap の繰り返し処理

ストリームを用いて要素の繰り返し処理を行うことができます。ここでは、entrySet() を用いて、ストリームの forEach() メソッドを通過するマップ要素を収集します。

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

public class SimpleTesting {
  public static void main(String[] args) {
    Map<Integer, String> map = new HashMap<>();
    map.put(10, "Ten");
    map.put(100, "Hundred");
    map.put(1000, "Thousand");
    map.entrySet().stream().forEach(System.out::println);
  }
}

出力:

1 = 10
2 = 1020
3 = 300
5 = 500

関連記事 - Java HashMap