【发布时间】:2012-02-11 08:19:18
【问题描述】:
可能重复:
builder for HashMap
是否有任何实用程序类允许以方便且可读的方式从多个键值对创建 Map?
我认为guava 应该包含一些东西,但我找不到任何具有必要功能的东西。
我想要的是这样的:
MapBuilder.newHashMap()
.with("key1", 10)
.with("key2", 20)
.with("key3", 30)
.build();
附:我也知道双括号方法 (new HashMap<>() {{ put(..); put(..); }}),但我觉得它既不可读也不方便。
【问题讨论】:
-
@Roman 关于双大括号方法 - 这是匿名类定义,您在初始化块(第二对大括号)中调用 put()。我不喜欢这种方法,因为它通常会生成有关缺少 serialVersionUID 的警告,并且您需要 @supressWarnings("serial")。
-
见Guava's ImmutableMap.Builder。对于像这样的小地图,另请参阅更方便的ImmutableMap.of。
-
以上链接失效。新链接:ImmutableMap.builder()、ImmutableMap.of()
标签: java collections map guava