我有 list :
ArrayList<String> list = new ArrayList<>();
和 map :
Map<String, List<String>> map = new HashMap<>();
我需要比较列表和 map 的值,并根据该值返回键
问题是我不知道如何同步迭代,因为 arraylist 的大小与映射中每个列表的大小较小。
我也尝试过这个方法:
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));
..但是即使有一定的值(value),这个调用也会返回 false...
有什么想法如何获取每个值的每个键吗? 非常感谢
最佳答案
您正在比较 List<String>
到 String
,所以它永远不会返回 true。
使用List.contains
相反,确定 String
是否出现在 List
:
if (entry.getValue().contains(value)) {
return entry.getKey();
}
关于java - 如何比较arraylist和Hashmap并根据值从Hashmap中获取key?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37025291/