方式1:傳統(tǒng)方式
# 傳統(tǒng)方式
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");
}};
匿名內(nèi)部類通常會導致內(nèi)存泄漏問題,因為它會隱式地持有外部類的引用,如果外部類的引用一直存在而沒有釋放,它所持有的內(nèi)存也就不會被垃圾回收機制回收,產(chǎn)生內(nèi)存泄漏。而通過使用靜態(tài)內(nèi)部類或者弱引用等技術可以避免這個問題。
[Ref] 內(nèi)存泄露原因之一:匿名內(nèi)部類
方式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提供的方法文章來源:http://www.zghlxwxcb.cn/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用法總結文章來源地址http://www.zghlxwxcb.cn/news/detail-754202.html
到了這里,關于Java 中 Map 初始化的幾種方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!