【发布时间】:2020-07-22 19:59:49
【问题描述】:
这是我尝试过的
我想要 HashMap 的键和值....
帮我遍历这个MultiMap,得到HashMap
的键和值Multimap<String, HashMap> _multiMap= ArrayListMultimap.create();
Collection col = _multiMap.get(key);
Iterator<HashMap> iterator = col.iterator();
while (iterator.hasNext()) {
String _key = (String) iterator.next().get(key);
String _value = (String) iterator.next().get(value);
}
但它抛出了一些错误,即,
java.util.NoSuchElementException
at java.util.ArrayList$Itr.next(ArrayList.java:862)
at com.google.common.collect.AbstractMapBasedMultimap$Wrapped
Collection$Wrapped Iterator.next(AbstractMapBasedMultimap.java:486)
【问题讨论】:
-
你在每次调用
hasNext()时都调用iterator.next()两次,你不会在上调用hasNext()和next()/i> 迭代器,并且您到处都在使用原始类型。所有这些都是错误。 -
什么是
dbMap?您在dbMap.iterator()上调用hasNext(),然后使用从multiMap 检索到的某个集合的iterator。什么是key和value变量? -
每次通过 while 循环时,您还会得到一个 new
dbMap.iterator(),这会将其重置为开头。 -
嗨,@Louis Wassermna ......即,拼写错误我只有 iterator.hasNext()
-
@SivaReddy 这就是为什么你应该做一个最小的例子来展示你的例子并且有效,而不是模糊地复制你的问题的代码。