我想搜索 map 中是否存在的值
我有这样的 map
Map<String, Object> eMap = new HashMap<String, Object>();
Set<String> wList = new HashSet<>();
eMap.put("DATA LIST", wList);
假设集合包含 ['aaa', 'bbb'];
如何检查 map 中的“aaa”?
谢谢你。 :)
最佳答案
您可以通过以下方式检查:
使用 Java 8 :
public static boolean checkValueExists(Map<String, Object> eMap, String searchedValue){
return eMap.values().parallelStream()
.flatMap(set -> ((Set<String>)set).stream())
.anyMatch(set -> set.contains(searchedValue));
}
普通方式 :
public static boolean checkValueExists(Map<String, Object> eMap, String searchedValue){
for (Map.Entry<String, Object> item : eMap.entrySet()) {
String key = item.getKey();
Set<String> setValue = (Set<String>) item.getValue();
if(setValue.contains(searchedValue)){
return true;
}
}
return false;
}
在这里你必须对
Map<String, Object> eMap
进行迭代。 .获取它的值Set<String>
.现在你必须搜索 setValue
对于 searchedValue
.这是数据集:
Map<String, Object> eMap = new HashMap<>();
Set<String> numberList = new HashSet<>();
numberList.add("Number 1");
numberList.add("Number 2");
numberList.add("Number 3");
eMap.put("Number LIST", numberList);
Set<String> fruitList = new HashSet<>();
fruitList.add("Apple");
fruitList.add("Banana");
fruitList.add("Tomato");
eMap.put("Fruit LIST", fruitList);
String searchedValue="Number 3";
System.out.println("Is Value exists :"+checkValueExists(eMap,searchedValue));
关于java - 如何在 JAVA 中检查 map 中存在的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55274901/