使用 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());
}