java - Guava Multimap 包含入口问题

标签 java collections guava multimap

下面我有一些代码,将两个条目添加到第一个多图,将一个条目添加到第二个,然后比较两者。由于键是相同的“Dec”(见输出),为什么它输出 false?

输入

    Multimap<String, String> first = ArrayListMultimap.create();
    Multimap<String, String> second = ArrayListMultimap.create();
    first.put("Dec", "18");
    first.put("Dec", "12");
    second.put("Dec", "18");
    for (String key : second.keys()) {
            System.out.println(first.get(key));
        System.out.println(second.get(key));
        System.out.println(first.containsEntry(key, second.get(key)));
    }

输出

    [18, 12]
    [18]
    false

编辑:对于那些不理解下面答案的人,second.get(key) 将返回一组字符串(尽管只有一个),当然还有一组字符串 =/= string

最佳答案

您要查找键为 “Dec” 且值为“仅包含 “18””的集合的条目。该条目存在于firstsecond 中。

现在如果你使用:

System.out.println(first.containsEntry("Dec", "18"));

然后我希望打印true。基本上,您需要区分单个条目值和“与键关联的条目值集合”。

关于java - Guava Multimap 包含入口问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14736221/

相关文章:

variables - 为什么 dart 错误地推断出我的泛型参数类型?

java - 在java中检查4个Arraylists不包含相同值的最简单方法

java - 使用 Guava Ordering 对对象列表进行多标准排序

java - 带有 Optional 的 Null 安全方法链接

java - Guava 加载缓存 : How to unit test ListenableFuture within CacheLoader

java - 多线程同时连接本地主机?

java - 使用标记的中断获得无法访问的语句错误

java - 使用 Gradle 任务从文件中删除特定的行模式

java - 如何使用 Google Time Zone API 获取 GMT

java - 如何使用集合框架java对 vector 列表进行排序