用 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