我应该如何使用内部键在嵌套的 HashMap 中搜索项目?

How should I search items in a nested HashMap with inner key?

提问人:snow 提问时间:9/24/2023 更新时间:9/24/2023 访问量:27

问:

我有一个嵌套的 HashMap ,现在我知道 TreeMap 中的内部键,但没有 HashMap 中的键。我可以使用一些内置方法或其他方法而不迭代 HashMap 来获得我想要的东西吗?HashMap<String, TreeMap<Integer, Item>>Id(Integer)String

以前,如果我知道密钥,我可以用它来获取项目,然后使用 ,但是如果我没有外部密钥,我不知道现在该怎么办。迭代 HashMap 是唯一的方法吗?StringHashMap.get(String key)TreeMap.get(Integer inner_key)

Java 搜索 嵌套 哈希 树状图

评论


答:

0赞 Reilas 9/24/2023 #1

"...我可以使用一些内置方法或其他方法而不迭代 HashMap 来获得我想要的东西吗?..."

很遗憾没有。虽然,一次迭代只有几行。

String key(int i, HashMap<String, TreeMap<Integer, Item>> map) {
    for (Map.Entry<String, TreeMap<Integer, Item>> e : map.entrySet())
        if (e.getValue().containsKey(i)) return e.getKey();
    return null;
}

或者,使用

String key(int i, HashMap<String, TreeMap<Integer, Item>> map) {
    return map.entrySet()
              .stream()
              .filter(x -> x.getValue().containsKey(i))
              .findFirst()
              .get().getKey();
}

评论

0赞 snow 9/24/2023
谢谢!这就是我想要的,祝你有美好的一天:)