2

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

输入

    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

4

1 回答 1

6

您正在寻找一个键为"Dec"且值为“仅包含”的集合的条目"18"。该条目在或中都不存在。firstsecond

现在,如果您使用:

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

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

于 2013-02-06T18:35:06.763 回答