如何使用Guava为地图制作不可变的地图?

时间:2016-12-12 05:09:40

标签: java dictionary collections guava

给定Map,如何使用Guava创建不可变的地图?我知道通过Collections.unmodifiableMap的一种方法,但有没有其他方式使用番石榴?

Map<String, String> realMap = Maps.newHashMap();
realMap.put("A", "B");

// any other alternative?
Map<String, String> unmodifiableMap = Collections.unmodifiableMap(realMap);

我正在使用一些条目填充我的realMap,然后我需要使它成为不可变的,以便没有人可以修改它。我只是想看看是否有任何替代品使用番石榴?我做了一些搜索,但我找不到它。

1 个答案:

答案 0 :(得分:3)

您正在寻找ImmutableMap.copyOf()

ImmutableMap<String, String> immutableMap = ImmutableMap.copyOf(realMap);

请记住,与仅为其参数创建包装unmodifiableMap()相反,这实际上会将其复制到新地图。这可能意味着轻微的性能损失,但这也意味着不可能通过realMap意外修改地图。