ImmutableMap.Builder 来自 HashMap
ImmutableMap.Builder from a HashMap
我每个键有 HashMap<K,V>
个默认值。
我想将它转换为 ImmutableMap.Builder
因为我有另一个 ImmutableMap
,我想将其合并并覆盖到原始 HashMap 中。我想覆盖一些默认对并最终构建一个 ImmutableMap
.
如何将 HashMap
转换为 ImmutableMap.Builder
?
我还没有看到 ImmutableMap.Builder
constructor 获得 HashMap
。
只需使用 putAll
还是我遗漏了什么?构建时不能修改现有密钥,但可以添加更多密钥:
Map<String, String> srcMap = Map.of("A", "a", "B", "b", "C", "c");
ImmutableMap<String, String> map = ImmutableMap.<String, String> builder()
.putAll(srcMap)
.put("D", "d")
.build();
map.forEach((k,v) -> System.out.printf ("[%s:%s]", k, v));
如果您想覆盖现有值,您可以在调用 putAll
之前修改 srcMap
本身。
此外,如果您有一个准备好转换为 ImmutableMap 的 HashMap,您可以跳过构建器部分,只需使用 copyOf
:
ImmutableMap<String, String> finalMap = ImmutableMap.copyOf(srcMap);
我每个键有 HashMap<K,V>
个默认值。
我想将它转换为 ImmutableMap.Builder
因为我有另一个 ImmutableMap
,我想将其合并并覆盖到原始 HashMap 中。我想覆盖一些默认对并最终构建一个 ImmutableMap
.
如何将 HashMap
转换为 ImmutableMap.Builder
?
我还没有看到 ImmutableMap.Builder
constructor 获得 HashMap
。
只需使用 putAll
还是我遗漏了什么?构建时不能修改现有密钥,但可以添加更多密钥:
Map<String, String> srcMap = Map.of("A", "a", "B", "b", "C", "c");
ImmutableMap<String, String> map = ImmutableMap.<String, String> builder()
.putAll(srcMap)
.put("D", "d")
.build();
map.forEach((k,v) -> System.out.printf ("[%s:%s]", k, v));
如果您想覆盖现有值,您可以在调用 putAll
之前修改 srcMap
本身。
此外,如果您有一个准备好转换为 ImmutableMap 的 HashMap,您可以跳过构建器部分,只需使用 copyOf
:
ImmutableMap<String, String> finalMap = ImmutableMap.copyOf(srcMap);