Java 如何根据hashmap中的值获取密钥

Java 如何根据hashmap中的值获取密钥,java,hashmap,Java,Hashmap,我想检索与hashmap中的值关联的特定键 我想找回“我”的钥匙,我怎么才能拿到 代码段: HashMap<Integer,String> map = new HashMap<Integer,String>(); map.put(1,"I"); map.put(2,"ME"); HashMap map=newhashmap(); 地图放置(1,“I”); 地图。放(2,“我”); 您必须遍历密钥集合才能找到您的值 请看这篇文章以了解详细信息:您必须遍历密钥集合才能找到您

我想检索与hashmap中的值关联的特定键

我想找回“我”的钥匙,我怎么才能拿到

代码段:

HashMap<Integer,String> map = new HashMap<Integer,String>();
map.put(1,"I");
map.put(2,"ME");
HashMap map=newhashmap();
地图放置(1,“I”);
地图。放(2,“我”);

您必须遍历密钥集合才能找到您的值


请看这篇文章以了解详细信息:

您必须遍历密钥集合才能找到您的值


请看这篇文章以了解详细信息:

您试图做的事情有一个小问题。同一个值在hashmap中可能多次出现,因此如果按值查找键,可能会有多个结果(多个键具有相同的值)

然而,如果你确信这不会发生,它是可以做到的;请参见以下示例:

import java.util.*;
public class Main {
    public static void main(String[] args) {
        HashMap<Integer, String> map = new HashMap<Integer, String>();
        map.put(5, "vijf");
        map.put(36, "zesendertig");
    }
    static Integer getKey(HashMap<Integer, String> map, String value) {
        Integer key = null;
        for(Map.Entry<Integer, String> entry : map.entrySet()) {
            if((value == null && entry.getValue() == null) || (value != null && value.equals(entry.getValue()))) {
                key = entry.getKey();
                break;
            }
        }
        return key;
    }
}
import java.util.*;
公共班机{
公共静态void main(字符串[]args){
HashMap=newHashMap();
图.put(5,“vijf”);
普特地图(36,“zesendertig”);
}
静态整数getKey(HashMap映射,字符串值){
整数键=空;
对于(Map.Entry:Map.entrySet()){
if((value==null&&entry.getValue()==null)| |(value!=null&&value.equals(entry.getValue())){
key=entry.getKey();
打破
}
}
返回键;
}
}

您尝试执行的操作有一个小问题。同一个值在hashmap中可能多次出现,因此如果按值查找键,可能会有多个结果(多个键具有相同的值)

然而,如果你确信这不会发生,它是可以做到的;请参见以下示例:

import java.util.*;
public class Main {
    public static void main(String[] args) {
        HashMap<Integer, String> map = new HashMap<Integer, String>();
        map.put(5, "vijf");
        map.put(36, "zesendertig");
    }
    static Integer getKey(HashMap<Integer, String> map, String value) {
        Integer key = null;
        for(Map.Entry<Integer, String> entry : map.entrySet()) {
            if((value == null && entry.getValue() == null) || (value != null && value.equals(entry.getValue()))) {
                key = entry.getKey();
                break;
            }
        }
        return key;
    }
}
import java.util.*;
公共班机{
公共静态void main(字符串[]args){
HashMap=newHashMap();
图.put(5,“vijf”);
普特地图(36,“zesendertig”);
}
静态整数getKey(HashMap映射,字符串值){
整数键=空;
对于(Map.Entry:Map.entrySet()){
if((value==null&&entry.getValue()==null)| |(value!=null&&value.equals(entry.getValue())){
key=entry.getKey();
打破
}
}
返回键;
}
}

如果保证您的值是唯一的,请使用番石榴(HashMap对应项称为


.

如果您的值保证是唯一的,请使用番石榴(HashMap对应项称为


.

迭代地图的条目:

for(Entry<Integer, String> entry : map.entrySet()){
  if("ME".equals(entry.getValue())){
    Integer key = entry.getKey();
    // do something with the key
  }
}
for(条目:map.entrySet()){
如果(“ME”.equals(entry.getValue())){
整数key=entry.getKey();
//用钥匙做点什么
}
}

迭代地图的条目:

for(Entry<Integer, String> entry : map.entrySet()){
  if("ME".equals(entry.getValue())){
    Integer key = entry.getKey();
    // do something with the key
  }
}
for(条目:map.entrySet()){
如果(“ME”.equals(entry.getValue())){
整数key=entry.getKey();
//用钥匙做点什么
}
}
/**
*返回与指定值关联的键
*/
公共列表getKey(字符串值,映射){
列表键=新的ArrayList();
for(条目:map.entrySet()){
if(value.equals(entry.getValue())){
key.add(entry.getKey());
}
}
返回键;
}
/**
*返回与指定值关联的键
*/
公共列表getKey(字符串值,映射){
列表键=新的ArrayList();
for(条目:map.entrySet()){
if(value.equals(entry.getValue())){
key.add(entry.getKey());
}
}
返回键;
}

Try和code to interfaces.Map而不是HashMapTry和code to interfaces.Map而不是HashMap这篇文章谈论的是“HashMap”而不是BiMap.“我认为”(如何根据HashMap的值获取密钥)这篇文章谈论的是“HashMap”而不是BiMap.“我认为”(如何根据HashMap的值获取密钥)