使用 Stream API 将地图值与列表进行比较
Compare Map Value with list using Stream API
需要从字符串列表和以字符串为键、列表为值的 MAP 中收集公共值。
片段:
public Map<String, List> maping() throws Exception {
String id="test";
List<String> no = new ArrayList<String>();
no.add("123456");
no.add("654321");
no.add("11223344");
Map<String, List> info = new HashMap<String, List>();
info .put(id, no);
return info ;
}
public List getInfo() {
List<String> listNo = new ArrayList<String>();
listNo.add("123456");
listNo.add("654321");
listNo.add("135790");
listNo.add("123987");
listNo.add("11223344");
return listNo;
}
第三种方法需要比较List和MAP的值,收集一个List中的公共号。
请指导使用 JAVA 8 Stream API
public List<String> collectCommonNumbers(Map<String, List<String>> inputMap, List<String> inputList) {
return inputMap.values().stream().flatMap(List::stream).distinct().filter(inputList::contains).collect(Collectors.toList());
}
需要从字符串列表和以字符串为键、列表为值的 MAP 中收集公共值。
片段:
public Map<String, List> maping() throws Exception {
String id="test";
List<String> no = new ArrayList<String>();
no.add("123456");
no.add("654321");
no.add("11223344");
Map<String, List> info = new HashMap<String, List>();
info .put(id, no);
return info ;
}
public List getInfo() {
List<String> listNo = new ArrayList<String>();
listNo.add("123456");
listNo.add("654321");
listNo.add("135790");
listNo.add("123987");
listNo.add("11223344");
return listNo;
}
第三种方法需要比较List和MAP的值,收集一个List中的公共号。 请指导使用 JAVA 8 Stream API
public List<String> collectCommonNumbers(Map<String, List<String>> inputMap, List<String> inputList) {
return inputMap.values().stream().flatMap(List::stream).distinct().filter(inputList::contains).collect(Collectors.toList());
}