Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 哈希映射反向键查找_Java - Fatal编程技术网

Java 哈希映射反向键查找

Java 哈希映射反向键查找,java,Java,我有一个哈希映射,我引用该键以获得如下值: // define the hashmap private static final Map<String, String> map; static { map.put("KEY1", "VALUE1"); map.put("KEY2", "VALUE2"); } // use the key to get a value private static final SomeObject MyObject1 = MyObjec

我有一个哈希映射,我引用该键以获得如下值:

// define the hashmap
private static final Map<String, String> map;
static {
   map.put("KEY1", "VALUE1");
   map.put("KEY2", "VALUE2");
}

// use the key to get a value 
private static final SomeObject MyObject1 = MyObject.compile(map.get("KEY1"));

...
//定义hashmap
私有静态最终地图;
静止的{
地图放置(“键1”、“值1”);
地图放置(“键2”、“值2”);
}
//使用键获取值
私有静态final SomeObject MyObject1=MyObject.compile(map.get(“KEY1”);
...
但是稍后在我的代码中,我得到了一个值,我需要得到密钥(我如何才能做到这一点):

//基于条件匹配从映射返回值的某个方法
字符串值=();
//现在我有了价值**我怎样才能得到钥匙**
System.out.println(“找到键匹配:”+map.getKeyFromValue(theValue);/???
考虑使用哈希映射而不是哈希映射:

bimap(或“双向映射”)是保留其值及其键的唯一性的映射。此约束使bimap支持“反向视图”,即另一个包含与此bimap相同条目但键和值反向的bimap

然后,您可以执行以下操作:

String key = map.inverse.get(theValue);
考虑使用HashMap而不是HashMap:

bimap(或“双向映射”)是保留其值及其键的唯一性的映射。此约束使bimap支持“反向视图”,即另一个包含与此bimap相同条目但键和值反向的bimap

然后,您可以执行以下操作:

String key = map.inverse.get(theValue);

如果使用番石榴BiMap不是一个选项(),那么您必须迭代地图条目,直到找到具有匹配值的条目:

for (Map.Entry<String, String> entries : map.entrySet())
{
  if (entry.getValue().equals(theValue())
  {
    return entry.getKey();               // we found it
  }
}

// We couldn't find it ... 
for(Map.Entry条目:Map.entrySet())
{
如果(entry.getValue().equals)(theValue())
{
return entry.getKey();//我们找到了它
}
}
//我们找不到它。。。

如果使用番石榴BiMap不是一个选项(),那么您必须迭代地图条目,直到找到具有匹配值的条目:

for (Map.Entry<String, String> entries : map.entrySet())
{
  if (entry.getValue().equals(theValue())
  {
    return entry.getKey();               // we found it
  }
}

// We couldn't find it ... 
for(Map.Entry条目:Map.entrySet())
{
如果(entry.getValue().equals)(theValue())
{
return entry.getKey();//我们找到了它
}
}
//我们找不到它。。。

是的,番石榴的署名是:“番石榴:用于Java 1.6+的谷歌核心库”很酷,我会试一试。再次感谢!正如广告所说的那样有效!而且,这两个答案对我来说最有意义(尽管它们来自同一位作者)。=)是的,番石榴的署名是:“番石榴:用于Java 1.6+的谷歌核心库。”很酷,我会试一试。再次感谢!正如广告所宣传的那样工作!而且,这两个答案对我来说最有意义(即使它们来自同一作者)。=)@SubhrajyotiMajumder:这是两个不同的答案。如果你能给我指一个解释这是件坏事的元帖子,我会改变它,但对我来说这似乎是正确的。@SubhrajyotiMajumder:这是两个不同的答案。如果你能给我指一个解释这是件坏事的元帖子,我会改变它,但看起来不是他对我做了正确的事。