1、使用Collections.singletonMap()初始化
Collections.singletonMap()可以为HashMap初始一个key和value。
import java.util.*; public class Main { public static void main(String[] args) { Map m1 = Collections.singletonMap("key1", "value1"); System.out.println(m1); System.exit(0); //success } }
2、Map.of()或Map.ofEntries()
Java 9及以上版本,可以使用Map.of()或Map.ofEntries()对HashMap对象进行初始化。
1)最多适用于10个元素
import java.util.*; public class Main { public static void main(String[] args) { Map m1 = Map.of( "C", "cjavapy", "Java", "code" ); System.out.println(m1); System.exit(0); //success } }
2)适用于任何数量的元素
import java.util.*; import static java.util.Map.entry; public class Main { public static void main(String[] args) { Map m2 = Map.ofEntries( entry("C", "cjavapy"), entry("Java", "code") ); System.out.println(m2); System.exit(0); //success } }
相关文档:https://docs.oracle.com/javase/9/docs/api/java/util/Map.html
3、使用初始化器
Java 8及以上版本,可以在匿名子类中使用初始化器来实现。
import java.util.*; public class Main { public static void main(String[] args) { Map m1 = new HashMap() {{ put("C", "cjavapy"); put("Java", "code"); }}; System.out.println(m1); System.exit(0); //success } }
4、 ImmutableMap.of()
可以使用ImmutableMap.of()指定初始化的key和value
相关文档:https://github.com/google/guava/blob/master/guava/src/com/google/common/collect/ImmutableMap.java
Map left = ImmutableMap.of("C", 1, "Java", 2, "Python", 3);
5、Stream.of()
Java 8中,可以使用Streams/collector来初始化。
import java.util.*; import static java.util.stream.Collectors.toMap; import java.util.AbstractMap.SimpleEntry; import java.util.stream.Stream; public class Main { public static void main(String[] args) { Map m1 = Stream.of( new SimpleEntry<>("key1", "value1"), new SimpleEntry<>("key2", "value2"), new SimpleEntry<>("key3", "value3")) .collect(toMap(SimpleEntry::getKey, SimpleEntry::getValue)); System.out.println(m1); System.exit(0); //success } }