我有一些指向多重地图中许多值的键。我如何才能基于多重映射中存在的值检索密钥。这是我的代码。

   package com.manoj;

import java.util.Set;

import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;

public class GuavaMap
{
    public static void main(String[] args)
    {
        Multimap regions = ArrayListMultimap.create();
        regions.put("asia", "afganistan");
        regions.put("asia", "bangladesh");
        regions.put("asia", "inida");
        regions.put("asia", "japan");
        regions.put("asia", "burma");
        regions.put("europe", "andorra");
        regions.put("europe", "austria");
        regions.put("europe", "belgium");
        regions.put("europe", "cyprus");
        regions.put("oceania","australia");
        regions.put("oceania", "fiji");
        regions.put("oceania", "nauru");
        Set<String> keys = regions.keySet();
        System.out.println("key\t\t\t"+"values\t\t\t");
        System.out.println();
        String comp = null;
        for(String key : keys)
        {
            System.out.print(key);
            System.out.println(regions.get(key));
        }
    }
}


上面的代码为我提供了如下输出
java - 如何根据多重 map 中显示的值检索 key ?-LMLPHP

我需要基于该国家的地区名称。

示例:如果我给“澳大利亚”,则输出应为“大洋洲”

最佳答案

你可以把它反转

Multimap<String, String> invregions = Multimaps.invertFrom(regions , ArrayListMultimap.<String, String>create());


并调用get(“ yourcountry”);

这将为您提供包含您所在国家的钥匙

08-27 21:36