【问题标题】:Get Key from Value from Singleton Map - Java从单例映射中的值获取键 - Java
【发布时间】:2014-03-22 15:43:40
【问题描述】:

我希望从 SingletonMap 的值中检索键

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

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

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

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

【问题讨论】:

  • 一个 singletonMap 只有一个 key -&gt; value 映射,所以除非您提供的值不在映射中,否则它只是 map.keySet() 的第一个(也是唯一一个)元素?

标签: java map hashmap


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-09
      • 2018-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多