If I understand your filtering criteria correctly, you want to check if the filtered Stream
you produced from the value List
has any elements, and if so, pass the corresponding Map
entry to the output Map
.
Map<String, List<BoMLine>>
filtered = materials.entrySet()
.stream()
.filter(a->a.getValue()
.stream()
.anyMatch(l->MaterialDao.findMaterialByName(l.getMaterial())))
.collect(Collectors.toMap(e->e.getKey(),e->e.getValue()));
This is assuming MaterialDao.findMaterialByName(l.getMaterial())
returns a boolean
.