我正在迭代这样的元素ArrayListMultimap
:
for(MyKey key : multimap.keySet()) {
List<MyValue> values = multimap.get(key);
// multimap.containsKey(key) returns false
for(MyValue val : values) {
// sometimes the list is empty
}
}
但是当我试图检索一个键的值时,我得到一个空列表。也multimap.containsKey(key)
返回假。当我尝试使用 迭代时entries()
,会找到键和值。
我正在使用guava-14.0.1.jar
,但我尝试了旧版本并且得到了相同的行为。此外,有时会有空值作为值,我已经覆盖了 MyKey 和 MyValue 的 equals 和 hash 方法。
知道是什么原因造成的吗?我确定这不是ArrayListMultimap
实施。