gpt4 book ai didi

java - 补充 map

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:52:25 28 4
gpt4 key购买 nike

我们有这样两个互补 map 的代码:

private final Map<Integer, String> idToName = new HashMap<Integer, String>();
private final Map<String, Integer> nameToID = new TreeMap<String, Integer>();

每当我们将一些东西放入一个时,我们也会像这样放入另一个(键和值颠倒):

nameToID.put(name, id);
idToName.put(id, name);

我们遇到了这个应用程序的内存问题。似乎这里有很多重复。有没有办法提高内存效率?我们可以使用的一些单一结构?我意识到这可能会以牺牲时间效率为代价,所以我很想知道权衡是什么。

最佳答案

这正是Guava's BiMap确实如此,尽管您只能获得这么多额外的内存效率。 BiMap 的最大优势与其说是内存效率,不如说是“它负责确保值是唯一的,而且你不会忘记更新逆映射。”

BiMap<Integer, String> idToName = HashBiMap.create();
idToName.put(1, "foo");
idToName.inverse(); // returns a BiMap mapping "foo" to 1
idToName.inverse().put("bar", 2); // idToName now has an extra mapping 2 -> "bar"

(披露:我为 Guava 做出贡献。)

关于java - 补充 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12752093/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com