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)

questionAnswers(1)

yourAnswerToTheQuestion