Java 如何比较arraylist和Hasmap,并根据值从Hashmap中获取密钥?

Java 如何比较arraylist和Hasmap,并根据值从Hashmap中获取密钥?,java,arraylist,Java,Arraylist,我有一份清单: ArrayList<String> list = new ArrayList<>(); ArrayList list=new ArrayList(); 和地图: Map<String, List<String>> map = new HashMap<>(); Map Map=newhashmap(); 我需要比较list和map的值,并基于该值返回键 问题是我不知道如何同步迭代,因为arraylist与map中的

我有一份清单:

ArrayList<String> list = new ArrayList<>();
ArrayList list=new ArrayList();
和地图:

Map<String, List<String>> map = new HashMap<>();
Map Map=newhashmap();
我需要比较list和map的值,并基于该值返回键

问题是我不知道如何同步迭代,因为arraylist与map中的每个列表一样大小较小

我也尝试过这种方法:

public static Object getKeyByValue(Map<String,List<String>> map, String value) {
    for (Entry<String, List<String>> entry : map.entrySet()) {
        if (Objects.equals(value, entry.getValue())) {
            return entry.getKey();
        }
    }
    return null;
}

getKeyByValue(map,list.get(0)); 
公共静态对象getKeyByValue(映射映射,字符串值){
for(条目:map.entrySet()){
if(Objects.equals(value,entry.getValue())){
return entry.getKey();
}
}
返回null;
}
getKeyByValue(map,list.get(0));
…但此调用返回false,即使存在特定值

你知道如何获得每个值的每个键吗?
非常感谢

您正在将
列表
字符串
进行比较,因此它永远不会返回true

改为使用
List.contains
,以确定
字符串是否出现在
列表中:

    if (entry.getValue().contains(value)) {
        return entry.getKey();
    }

您正在将
列表
字符串
进行比较,因此它永远不会返回true

改为使用
List.contains
,以确定
字符串是否出现在
列表中:

    if (entry.getValue().contains(value)) {
        return entry.getKey();
    }