java-8 eine Liste filtern, ohne eine neue Liste zu erstellen
Ich suche nach der saubersten Methode zum Filtern einer Liste in Java-8 mit einem einfachen LambdaPredicate
, ohne eine neue Liste zu erstellen.
Insbesondere ist diese Lösung nicht geeignet, datoList()
gibt ein neues @ zurüList
:
List<Person> beerDrinkers = persons.stream()
.filter(p -> p.getAge() > 16)
.collect(Collectors.toList());
Bitte beachten Sie, dass die folgende Lösung ebenfalls nicht funktioniert, da die Liste @ lauten solltclear()
ed von seinen ursprünglichen Werten (aber offensichtlich, wenn Sie es löschenVo Filterung, es gibt nichts mehr zu filtern ...):
persons.stream()
.filter(p -> p.getAge() > 16)
.forEach((p) -> persons.add(p));
(Außerdem würde ich eine Lösung vorziehen, bei der keine Bibliothek oder Framework eines Drittanbieters verwendet wird.)