HashMap的构建器

2022-08-31 08:45:55

Guava为我们提供了很好的Java类型工厂方法,例如.Maps.newHashMap()

但是,Java Maps也有构建器吗?

HashMap<String,Integer> m = Maps.BuildHashMap.
    put("a",1).
    put("b",2).
    build();

答案 1

HashMaps没有这样的东西,但您可以使用构建器创建一个不可变的Map:

final Map<String, Integer> m = ImmutableMap.<String, Integer>builder().
      put("a", 1).
      put("b", 2).
      build();

如果你需要一个可变的映射,你可以把它提供给HashMap构造函数。

final Map<String, Integer> m = Maps.newHashMap(
    ImmutableMap.<String, Integer>builder().
        put("a", 1).
        put("b", 2).
        build());

答案 2

不完全是构建器,而是使用初始值设定项:

Map<String, String> map = new HashMap<String, String>() {{
    put("a", "1");
    put("b", "2");
}};