首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何遍历google multimap

如何遍历google multimap
EN

Stack Overflow用户
提问于 2010-10-14 22:50:42
回答 4查看 55.5K关注 0票数 27

我必须遍历google multimap。但

  1. 我使用的是JDK1.4,无法切换到更高版本。因此,我不能使用通用功能。
  2. My multimap可以为一个键指定多个值。
  3. 当multimap的值本身就是multimap时,可能会出现这种情况
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 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()) { ... }

迭代值Collections:

for (Collection collection : multimap.asMap().values()) { ... }

您还可以使用bwawok中描述的get获取keySet()中每个键的相应Collection

编辑:我也没有考虑到Java1.4没有foreach循环的事实,所以上面的每个循环都必须直接使用Iterator编写。

票数 53
EN

Stack Overflow用户

发布于 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都会返回与该键匹配的所有内容。然后你可以把它们剥离,或者随心所欲地处理它们。

票数 11
EN

Stack Overflow用户

发布于 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);
        }
    }
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3934470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档