Need to collect the common value from a List of String and from a MAP having String as KEY and List as VALUE.
Snippet:
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;
}
In third method need to compare the List and MAP value and collect the common no in a List. Please guide using JAVA 8 Stream API
CodePudding user response:
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());
}