给定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
,然后我需要使它成为不可变的,以便没有人可以修改它。我只是想看看是否有任何替代品使用番石榴?我做了一些搜索,但我找不到它。
答案 0 :(得分:3)
您正在寻找ImmutableMap.copyOf()
:
ImmutableMap<String, String> immutableMap = ImmutableMap.copyOf(realMap);
请记住,与仅为其参数创建包装的unmodifiableMap()
相反,这实际上会将其复制到新地图。这可能意味着轻微的性能损失,但这也意味着不可能通过realMap
意外修改地图。