我必须遍历google multimap。但
发布于 2010-10-15 00:21:42
Google Collections (现在的Guava)是一个Java1.5库...即使忽略了Java1.4中缺少泛型的问题,它也很可能使用了1.5中添加的东西,这使得它不兼容。也就是说,有多种方法可以遍历Multimap
。
按键,Java8中的集合对:
multimap.asMap().forEach((key, collection) -> {...});
遍历所有值:
for (Object value : multimap.values()) { ... }
遍历所有键(映射到迭代中多次出现的多个值的键):
for (Object key : multimap.keys()) { ... }
遍历密钥集:
for (Object key : multimap.keySet()) { ... }
遍历条目:
for (Map.Entry entry : multimap.entries()) { ... }
迭代值Collection
s:
for (Collection collection : multimap.asMap().values()) { ... }
您还可以使用bwawok中描述的get
获取keySet()
中每个键的相应Collection
。
编辑:我也没有考虑到Java1.4没有foreach循环的事实,所以上面的每个循环都必须直接使用Iterator
编写。
发布于 2010-10-14 23:58:19
我使用的是Java 6,但这应该非常接近...如果我错过了java 1.4ish的内容,我很抱歉
Set keySet = listmultimap.keySet();
Iterator keyIterator = keySet.iterator();
while (keyIterator.hasNext() ) {
String key = (String) keyIterator.next();
List values = listmultimap.get( key );
}
每次get都会返回与该键匹配的所有内容。然后你可以把它们剥离,或者随心所欲地处理它们。
发布于 2017-02-02 16:16:47
使用芭乐多图时,值将存储在集合中,而不是列表中
Set<String> keys = multiMap.keySet();
for (String keyprint : keys) {
System.out.println("Key = " + keyprint);
Collection<String> values = multiMap.get(keyprint);
for(String value : values){
System.out.println("Value= "+ value);
}
}
https://stackoverflow.com/questions/3934470
复制相似问题