用 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