Java で HashMap を初期化する

Rupam Yadav 2023年10月12日
  1. Java の従来の方法を使用して HashMap を初期化する
  2. Java で匿名サブクラスを作成して HashMap を初期化する
  3. Java で Collections.singletonMap() を使って単一のキーと値のペアで HashMap を初期化する
  4. Java 8 で Collectors.toMap() を使用して HashMap を初期化する
  5. Java 9 で Map.of() を使用して HashMap を初期化する
Java で HashMap を初期化する

HashMap は、データをキーと値のペアで格納するための非常に便利な方法です。HashMap を初期化する方法はいくつかあり、更新のたびに Java によって簡単に実現できます。

Java の従来の方法を使用して HashMap を初期化する

HashMap を初期化する最も一般的で標準的な方法は、以下のプログラムに示されています。

例では、Map を宣言し、Key-Value データ型を String として配置します。new HashMap() を使用して HashMap を初期化します。

このタイプの初期化では、可変タイプの HasMap が生成され、put() メソッドを使用してデータを挿入します。最初の引数は key です。2 番目の引数はです。

最後のステートメントでは、HashMap 全体を出力します。

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

public class Main {
  public static void main(String[] args) {
    Map<String, String> hashMap = new HashMap<>();
    hashMap.put("key1", "String1");
    hashMap.put("key2", "String2");
    hashMap.put("key3", "String3");

    System.out.println(hashMap);
  }
}

出力:

{key1=String1, key2=String2, key3=String3}

Java で匿名サブクラスを作成して HashMap を初期化する

HashMap を初期化する別の方法は、二重中括弧と put() メソッドを使用してデータを挿入することです。

最初に宣言してから、次のコードのデータで HashMap を初期化します。mapExample は変更可能であり、初期化後に別のデータを配置できます。

マップを初期化するこの方法は、匿名クラスで新しいサブクラスを作成し、追加のクラスはそれを行うための非常に効率的な方法ではないため、お勧めしません。

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

public class Main {
  public static void main(String[] args) {
    Map<String, String> mapExample = new HashMap<>() {
      {
        put("Key01", "String01");
        put("Key02", "String02");
        put("Key03", "String03");
      }
    };

    mapExample.put("Key04", "String04");
    System.out.println(mapExample);
  }
}

出力:

{Key01=String01, Key02=String02, Key03=String03, Key04=String04}

Java で Collections.singletonMap() を使って単一のキーと値のペアで HashMap を初期化する

これは、単一のキーと値のペアのデータを挿入するだけで HashMap を初期化する方法です。Collections クラスの静的メソッド singletonMap() を使用します。このメソッドは、単一のエントリのみで不変のマップを返します。

次の例では、Collections.singletonMap() 関数を呼び出して、Key-Value データを渡します。Map は不変であるため、初期化後にデータを変更または挿入することはできません。

import java.util.Collections;
import java.util.Map;

public class Main {
  public static void main(String[] args) {
    Map<String, String> mapExample = Collections.singletonMap("key1", "value1");
    System.out.println(mapExample);
  }
}

出力:

{key1=value1}

Java 8 で Collectors.toMap() を使用して HashMap を初期化する

Java 8 アップデートでは、Stream API が導入されました。これは、コレクションや配列など、Java のさまざまなタイプで操作を実行するメソッドを含む一連の要素です。

以下のプログラムは、Stream の使用法を示しています。Stream API を使用して、Stream 内の単一の要素を順次返す of() メソッドを呼び出します。

of() メソッドでは、返したい要素のオブジェクト型を渡します。String タイプの配列である new String[][] を指定し、その配列にキーと値のペアを挿入します。

String 配列要素のシーケンシャルストリームを Map に変換するには、collect() メソッドを呼び出し、この関数では、渡されたデータを Map にマップする Collectors.toMap()を呼び出します。

Collectors.toMap() メソッドでは、配列の最初の要素を取得し、それをキーとして、2 番目の要素を値として配置します。この後、streammapExample に保存する単一の Map を返します。

import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) {
    Map<String, String> mapExample =
        Stream.of(new String[][] {{"key1", "21"}, {"key2", "22"}, {"key3", "33"}})
            .collect(Collectors.toMap(
                collectorData -> collectorData[0], collectorData -> collectorData[1]));

    System.out.println(mapExample);
  }
}

出力:

{key1=21, key2=22, key3=33}

Java 9 で Map.of() を使用して HashMap を初期化する

HashMap を初期化する別の方法は、Java 9 バージョンの Map.of() 関数を使用することです。Map.of() は、ペアとして渡されたキーと値をマップし、不変の HashMap を返します。

Map.of() は最大 10 個のエントリのみを取ることができることに注意してください。

import java.util.Map;

public class Main {
  public static void main(String[] args) {
    Map<String, String> mapExample = Map.of("key1", "Value1", "key2", "Value2", "key", "Value3");

    System.out.println(mapExample);
  }
}

出力:

{key=Value3, key1=Value1, key2=Value2}
著者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

関連記事 - Java HashMap