在Java中,优雅的构造并初始化Map的方式有三种,在此记录一下
static块初始化
1 | private static final Map<String, String> MAP; |
双括号初始化(匿名内部类)
1 | HashMap<String, String > h = new HashMap<String, String>(){{ |
这种写法本质上是创建了一个匿名内部类,因此会持有外部类实例的引用,如果拥有比外部类实例更长的生命周期,有内存泄漏的风险,需要慎重使用
Guava工具包
使用Google提供的Guava工具包
jcenter库依赖:com.google.guava:guava:21.0
1 | Map<String, Integer> test1 = ImmutableMap.of("xx", 1, "yy", 2, "zz", 3); |