用 Java 初始化 HashMap
- 在 Java 中使用傳統方式初始化 HashMap
- 在 Java 中通過建立匿名子類來初始化 HashMap
-
在 Java 中使用
Collections.singletonMap()
初始化具有單個鍵值對的 HashMap -
在 Java 8 中使用
Collectors.toMap()
初始化 HashMap -
在 Java 9 中使用
Map.of()
初始化 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()
方法插入資料。
我們首先宣告然後使用以下程式碼中的資料初始化一個 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()
函式並傳遞鍵值資料。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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn