java-8 filtra uma lista sem criar uma nova lista
Estou procurando a maneira mais limpa de filtrar uma lista em Java-8, com uma simples lambdaPredicate
, sem criar uma nova lista.
Em particular, esta solução não é adequada, poistoList()
retorna um novoList
:
List<Person> beerDrinkers = persons.stream()
.filter(p -> p.getAge() > 16)
.collect(Collectors.toList());
Observe que a solução a seguir também não funciona, porque a lista deve serclear()
de seus valores originais (mas, obviamente, se você limpá-loantes filtragem, não há mais nada para filtrar ...):
persons.stream()
.filter(p -> p.getAge() > 16)
.forEach((p) -> persons.add(p));
(Além disso, prefiro uma solução que não envolva o uso de uma biblioteca ou estrutura de terceiros)