从Singleton映射的值中获取键-Java

从Singleton映射的值中获取键-Java,java,map,hashmap,Java,Map,Hashmap,我希望从SingletonMap的值中检索键 Map<String,String> map = Collections.singletonMap("key1", "value1"); Map Map=Collections.singletonMap(“key1”、“value1”); 我正在寻找一种简单的方法来获得关键,基于价值。而不是像我以前那样。我觉得这对于一张单件地图来说太高了 public static List<String> getKey(String v

我希望从SingletonMap的值中检索键

Map<String,String> map = Collections.singletonMap("key1", "value1");
Map Map=Collections.singletonMap(“key1”、“value1”);
我正在寻找一种简单的方法来获得关键,基于价值。而不是像我以前那样。我觉得这对于一张单件地图来说太高了

public static List<String> getKey(String value, Map<String, String> map) 
{
    List<String> keys = new ArrayList<String>();
    for(Entry<String, String> entry:map.entrySet()) 
    {
        if(value.equals(entry.getValue())) 
        {
            keys.add(entry.getKey());
        }
    }
    return keys;
}
公共静态列表getKey(字符串值,映射)
{
列表键=新的ArrayList();
for(条目:map.entrySet())
{
if(value.equals(entry.getValue()))
{
key.add(entry.getKey());
}
}
返回键;
}

任何输入或建议都会很有帮助。

我不确定您为什么要这样做,但我认为这在任何其他方面都是不可能的。您可以使用调用之类的方法使代码可读,并提供适当的transformer函数。

单例映射中只有一个条目,因此您可以执行以下操作:

    Map<String,String> map = Collections.singletonMap("key1", "value1");

    String theOnlyKeyInTheMap = map.keySet().iterator().next();
Map Map=Collections.singletonMap(“key1”、“value1”);
字符串theOnlyKeyInTheMap=map.keySet().iterator().next();

singletonMap只有一个
key->value
映射,因此除非您提供的值不在映射中,否则它只是
map.keySet()的第一个(也是唯一一个)元素。