Sto cercando il modo più pulito per filtrare un elenco in Java-8, con un semplice lambda Predicate
, senza creare un nuovo elenco.java-8 filtra un elenco senza creare un nuovo elenco
In particolare, questa soluzione non è adatta, come toList()
restituisce un nuovo List
:
List<Person> beerDrinkers = persons.stream()
.filter(p -> p.getAge() > 16)
.collect(Collectors.toList());
Si noti che la seguente soluzione non funziona neanche, perché l'elenco dovrebbe essere clear()
ed i suoi valori originali (ma ovviamente, se si cancella lo prima filtraggio, non c'è niente da filtrare ...):
persons.stream()
.filter(p -> p.getAge() > 16)
.forEach((p) -> persons.add(p));
(Inoltre, preferirei una soluzione non prevedono t egli usa una libreria o un framework di terze parti)
Nome variabile di Nizza. : P –
Controlla https://github.com/wapatesh/fig, potresti averne bisogno in molti casi – Stoneboy