方式1:传统方式
# 传统方式
Map<String, String> map = new HashMap<>();
map.put("k1", "v1");
map.put("k2", "v2");
private static final Map<String, String> map = new HashMap<>();
static {
map .put("key1", "value1");
map .put("key2", "value2");
}
方式2:java8新特性-双括号初始化
# java8新特性-双括号初始化
Map<String, String> map1 = new HashMap<>() {{
put("k1", "v1");
put("k2", "v2");
}};
private static final HashMap<String, String> myMap1 = new HashMap<>() {{
put("key1", "value1");
put("key2", "value2");
}};
匿名内部类通常会导致内存泄漏问题,因为它会隐式地持有外部类的引用,如果外部类的引用一直存在而没有释放,它所持有的内存也就不会被垃圾回收机制回收,产生内存泄漏。而通过使用静态内部类或者弱引用等技术可以避免这个问题。
[Ref] 内存泄露原因之一:匿名内部类
方式3:java9新特性-最简便的方式
# java9新特性-最简便的方式
Map<String, String> map = Map.of("k1", "v1", "k2", "v2");
# 不可变集合
private static final Map<String, String> map = Map.of();
private static final Map<String, String> map = Map.of("kye1", "value1", "key2", "value2");
private static final Map<String, String> map = Map.of("kye1", "value1", "key2", "value2","kye3", "value1","kye4", "value1","kye5", "value1","kye6", "value1","kye7", "value1","kye8", "value1","kye9", "value10","kye10", "value1");
方式4:com.google.guava提供的方法文章来源:https://www.toymoban.com/news/detail-754202.html
# com.google.guava提供的方法
Map<String, String> myMap3 = ImmutableMap.of("kye1", "value1", "key2", "value2");
Map<String, String> myMap4 = ImmutableMap.<String, String>builder().put("kye1", "value1").put("key2", "value2").build();
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.1.1-jre</version>
</dependency>
参考
Java Map初始化的几种方法
Map用法总结文章来源地址https://www.toymoban.com/news/detail-754202.html
到了这里,关于Java 中 Map 初始化的几种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!