Mam mapę, w której wartości są ciągami, a klucze są listami: Map<String, List<BoMLine>> materials
. Chciałbym przefiltrować tę mapę według jej wartości; coś takiego:Jak filtrować mapę według jej wartości w języku Java 8?
materials.entrySet().stream()
.filter(a->a.getValue().stream()
.filter(l->MaterialDao.findMaterialByName(l.getMaterial()).ispresent)
Ale to nie działa dla mnie. Czy ktoś ma pomysł?
Dziękuję.
Nie jestem pewien co do mojego rozwiązania i nie działa, gdy chcę go pobrać na mapę "e" nie jest t mapa jest tylko obiektem – Nazila
@nazila 'e' jest' Map.Entry> '. Zrobiłem głupie błędy składniowe w wywołaniu 'collect'. Zobacz edytowaną odpowiedź. –
Eran
Nie trzeba używać 'filter()', wystarczy przekazać predykat jako argument do 'anyMatch()'. –