gpt4 book ai didi

java - 在 TreeMap 中搜索 (Java)

转载 作者:行者123 更新时间:2023-11-29 06:25:10 26 4
gpt4 key购买 nike

我需要在 map 的 map 中进行搜索并返回该元素所属的键。我觉得这个实现很慢,你能帮我优化一下吗?。我需要使用 TreeSet,但我不能使用 contains,因为它们使用 compareTo,而 equals/compareTo 对是以不兼容的方式实现的,我无法更改它。(抱歉我的英语不好)

Map<Key, Map<SubKey, Set<Element>>> m = new TreeSet();

public String getKeys(Element element) {
for(Entry<Key, Map<SubKey, Set<Element>>> e : m.entrySet()) {
mapSubKey = e.getValue();
for(Entry<SubKey, Set<Element>> e2 : mapSubKey.entrySet()) {
setElements = e2.getValue();
for(Element elem : setElements)
if(elem.equals(element)) return "Key: " + e.getKey() + " SubKey: " + e2.getKey();
}
}
}

最佳答案

这里的问题是键和值是落后的。

映射允许人们有效地找到与键(Element,在这个例子中)关联的值(将是 KeySubKey) ).

向后走很慢。

有双向 map 实现,例如 Google Collections BiMap,支持更快的双向访问——但这意味着要替换 TreeMap。否则,维护两张 map ,每个方向一张。

关于java - 在 TreeMap 中搜索 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2953903/

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