用 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,並將鍵值資料型別作為 String。我們使用 new HashMap() 初始化 HashMap

這種型別的初始化會生成一個可變型別的 HasMap,我們使用 put() 方法在其中插入一些資料,其中第一個引數是 key。第二個引數是

在最後一條語句中,我們列印整個 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() 方法插入資料。

我們首先宣告然後使用以下程式碼中的資料初始化一個 HashMapmapExample 是可變的,我們可以在初始化後放入另一個資料。

不推薦這種初始化地圖的方式,因為它會建立一個帶有匿名類的新子類,而額外的類並不是一種非常有效的方式。

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() 函式並傳遞鍵值資料。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 呼叫 of() 方法,該方法按順序返回 Stream 中的單個元素。

of() 方法中,我們傳遞要返回的元素的物件型別。我們指定 new String[][],它是 String 型別的陣列,然後在陣列中插入鍵值對。

為了將 String 陣列元素的順序流轉換為 Map,我們呼叫 collect() 方法,在這個函式中,我們呼叫 Collectors.toMap() 將傳遞的資料對映到 Map

Collectors.toMap() 方法中,我們將陣列的第一個元素作為鍵,將第二個元素作為值。畢竟,stream 返回一個我們儲存在 mapExample 中的 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() 最多隻能佔用十個條目。

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