如何通过谷歌多地图迭代

2022-09-01 13:46:43

我必须通过谷歌多地图进行迭代。但

  1. 我使用的是jdk 1.4,无法切换到更高版本。所以我不能使用通用功能。
  2. 我的多映射可以有多个键值。
  3. 可能存在多映射的值本身就是多映射的情况

答案 1

Google Collections(现在的Guava)是一个Java 1.5库...即使忽略Java 1.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()) { ... }

循环访问值 s:Collection

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

您还可以按照 bwawok 的描述获取使用中每个密钥的相应值。CollectionkeySet()get

编辑:我没有想到Java 1.4也没有foreach循环的事实,所以当然上面的每个循环都必须直接使用s编写。Iterator


答案 2

我在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 );

    }

每次获得都会让您找回与该密钥匹配的所有内容。然后你可以把它们剥下来,或者用它们做任何你想做的事情。


推荐