【问题标题】:How to make an immutable map given a map using Guava?如何使用 Guava 在给定地图的情况下制作不可变地图?
【发布时间】:2017-04-26 22:41:25
【问题描述】:

给定一个地图,我如何使用 Guava 制作一个不可变的地图?我知道通过Collections.unmodifiableMap 的一种方法,但是还有其他使用 Guava 的方法吗?

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

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

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

【问题讨论】:

  • 真的吗?这大约是 1 秒在互联网上的研究!

标签: java dictionary collections guava


【解决方案1】:

您正在寻找ImmutableMap.copyOf():

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

请记住,与只为其参数创建 包装器unmodifiableMap() 不同,这实际上将其复制到新地图中。这可能意味着性能会受到轻微影响,但这也意味着地图不可能通过realMap 意外修改。

【讨论】:

    猜你喜欢
    • 2023-03-23
    • 2016-02-08
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 2014-10-22
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    相关资源
    最近更新 更多