Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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 当我们知道HashMap中的值时获取密钥_Java_Data Structures - Fatal编程技术网

Java 当我们知道HashMap中的值时获取密钥

Java 当我们知道HashMap中的值时获取密钥,java,data-structures,Java,Data Structures,可能重复: 我知道HashMap包含一个特定的整数变量作为值。如何获取与该值关联的键?如果您知道该键,Hashmaps将帮助您查找该值。如果您确实希望从值中获取密钥,则必须遍历所有项,比较值,然后获取密钥。此代码将执行以下操作: public List<Object> getKeysFromValue(Map<?, ?> hm, Object value){ List <Object>list = new ArrayList<Object&

可能重复:


我知道HashMap包含一个特定的整数变量作为值。如何获取与该值关联的键?

如果您知道该键,Hashmaps将帮助您查找该值。如果您确实希望从值中获取密钥,则必须遍历所有项,比较值,然后获取密钥。

此代码将执行以下操作:

  public List<Object> getKeysFromValue(Map<?, ?> hm, Object value){
    List <Object>list = new ArrayList<Object>();
    for(Object o:hm.keySet()){
        if(hm.get(o).equals(value)) {
            list.add(o);
        }
    }
    return list;
  }
公共列表getKeysFromValue(映射hm,对象值){
列表=新的ArrayList();
对于(对象o:hm.keySet()){
如果(hm.get(o).等于(值)){
列表。添加(o);
}
}
退货清单;
}
给你:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test
{
    public static void main( String args[] )
    {
        Map < Integer , Integer > map = new HashMap < Integer , Integer >();

        map.put( 1 , 2 );
        map.put( 3 , 4 );
        map.put( 5 , 6 );
        map.put( 7 , 4 );

        List< Integer > keys = new ArrayList< Integer >();

        Integer value = 4;

        for ( Integer key : map.keySet() )
        {
            if ( map.get( key ).equals( value ) )
            {
                keys.add( key );
            }
        }

        System.out.println( value + " has been found in the following keys: " + keys );
    }
}
Set entries=hashMap.entrySet();
对于(Map.Entry:entries){
if(entry.getValue().equals(givenValue)){
return entry.getKey();
}
}

在entrySet上循环更快,因为您不需要为每个键查询两次映射

public Set<Object> getKeysFromValue(Map<Object, Integer> map, int value) {
        Set<Object> keys = new HashSet<Object>();
        for (Map.Entry<Object, Integer> entry:map.entrySet()) {
            //if value != null
            if (entry.getValue() == value) {
                keys.add(entry.getKey());
            }
        }
return keys;
public Set getKeysFromValue(映射映射,int值){
Set keys=new HashSet();
对于(Map.Entry:Map.entrySet()){
//如果值!=null
if(entry.getValue()==value){
key.add(entry.getKey());
}
}
返回键;

试试这个……又短又甜的方式……

HashMap<String, Integer> list = new HashMap<String,Integer>();

        for (Map.Entry<String, Integer> arr : list.entrySet()){


                System.out.println(arr.getKey()+" "+arr.getValue()); 
        }
HashMap list=newhashmap();
对于(Map.Entry arr:list.entrySet()){
System.out.println(arr.getKey()+“”+arr.getValue());
}
public Set<Object> getKeysFromValue(Map<Object, Integer> map, int value) {
        Set<Object> keys = new HashSet<Object>();
        for (Map.Entry<Object, Integer> entry:map.entrySet()) {
            //if value != null
            if (entry.getValue() == value) {
                keys.add(entry.getKey());
            }
        }
return keys;
HashMap<String, Integer> list = new HashMap<String,Integer>();

        for (Map.Entry<String, Integer> arr : list.entrySet()){


                System.out.println(arr.getKey()+" "+arr.getValue()); 
        }