发送钥匙时获得价值

时间:2019-10-06 22:50:53

标签: java guava

我有Guava Multimap的代码:

/dev/mem

我想在此结构中查询值。

例如:如何发送值String key = "first-key"; Multimap<String, String> map = ArrayListMultimap.create(); map.put(key, "firstValue"); map.put(key, "secondValue"); map.put(key, "thirdValue"); map.putAll("sec-key", Sets.newHashSet("am", "are", "is")); for (String name : map.keySet()) { System.out.println("key: " + name); } 并获得结果are

2 个答案:

答案 0 :(得分:1)

areis都是映射到 sec-key。没有直接使用多图通过不同值查找值的简单方法。 mutlimap用于将映射到。不是值到值。

您当然可以做这样的事情,但这效率很低-此代码要求我们遍历整个地图:

for (Entry<String, String> entry : map.entries()){
    if (entry.getValue().equals("are")) {
        System.out.println(map.get(entry.getKey())); //will print the values mapped to the same key as `are`.

        break;
    }
}

更好的解决方案是使用第二个映射,其中以are为键,以is为值(如果是{{1 }})。如果您确保两个多图保持同步,则可以在两个方向上快速查找。

答案 1 :(得分:0)

  

例如:我如何发送价值和获得结果?

“ are”不是映射为值“ is”的键。您只能通过将键传递给地图来获取值。