从单例映射中从值获取键 - Java

问题描述 投票:0回答:3

我希望从 SingletonMap 的值中检索键

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

我正在寻找一种基于价值的简单方法来获取钥匙。而不是我以前做过的方式。我觉得这对于 singleTon Map 来说开销太大了。

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;
}

任何意见或建议都会有帮助。

java dictionary hashmap
3个回答
14
投票

单例映射中只有一个条目,因此您可以这样做:

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

    String theOnlyKeyInTheMap = map.keySet().iterator().next();

0
投票

我不确定你为什么想要这个,但我认为以任何其他方式这是不可能的。您可以使用诸如 Guava Maps.transformEntries 之类的调用(提供适当的转换器函数)来使代码可读。


0
投票

CollectionUtils.getSingleOrNull(map.keySet())

© www.soinside.com 2019 - 2024. All rights reserved.