Poszukuję najczystszego sposobu filtrowania listy w języku Java-8, za pomocą prostej wartości lambda Predicate
, bez tworzenia nowej listy.java-8 filtruj listę bez tworzenia nowej listy
W szczególności, rozwiązanie to nie nadaje się, jako toList()
zwraca nowy List
:
List<Person> beerDrinkers = persons.stream()
.filter(p -> p.getAge() > 16)
.collect(Collectors.toList());
pamiętać, że poniższe rozwiązanie nie działa albo, ponieważ lista powinna być clear()
ed swoich pierwotnych wartości (ale oczywiście, jeśli oczywiste jest przed filtrowania, nie ma nic do filtrowania ...):
persons.stream()
.filter(p -> p.getAge() > 16)
.forEach((p) -> persons.add(p));
(też wolałbym rozwiązanie nie obejmujące t korzysta z biblioteki lub architektury innej firmy)
Przyjemna nazwa zmiennej. : P –
Sprawdź https://github.com/wapatesh/fig, może być potrzebny w wielu przypadkach – Stoneboy