Below I have some code that adds two entries to the first multimap and a single entry to the second, then compares the two. Since the keys are the same “Dec” (see output), why does it output false?
input
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)));
}
output
[18, 12]
[18]
false
Edit: For those who don’t understand the answer below, second.get(key) will return a collection of strings (albeit only one) and of course a collection of strings =/= string
You’re looking for an entry with a key of
"Dec"and a value of “a collection containing just"18"“. That entry doesn’t exist in eitherfirstorsecond.Now if you use:
then I expect that will print
true. Basically you need to distinguish between an individual entry value and “the collection of entry values associated with a key”.