在Google集合中静态初始化Maps的最佳方法

Naw*_*awa 11 java guava

静态初始化可修改地图的最佳方法是什么?我发现只

ImmutableMap.of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5)
Run Code Online (Sandbox Code Playgroud)

但是这种方式创建了不可变映射并包含固定的参数列表.

卢声远*_* Lu 21

如果你想要一个of代码时尚,你可以使用:

myMap = Maps.newHashMap(ImmutableMap.of(k1, v1, k2, v2...));
Run Code Online (Sandbox Code Playgroud)

此外,ImmutableMap.Builder还有从复杂来源创建Map的其他选择:

myMap = Maps.newHashMap(new ImmutableMap.Builder<K, V>()
                   .put(k1, v1) //One k-v pair 
                   .putAll(otherMap) //From other Map
                   .put(Maps.immutableEntry(k2, v3)) //From a Map Entry
                   ...
                   .build());
Run Code Online (Sandbox Code Playgroud)

另外:我的代码不是ImmutableMap的初衷.如果Nawa坚持使用Guava库;)