java-8 filtra una lista sin crear una nueva lista

Estoy buscando la forma más limpia de filtrar una lista en Java-8, con una simple lambdaPredicate, sin crear una nueva lista.

En particular, esta solución no es adecuada, ya quetoList() devuelve un nuevoList:

List<Person> beerDrinkers = persons.stream()
    .filter(p -> p.getAge() > 16)
    .collect(Collectors.toList());

Tenga en cuenta que la siguiente solución tampoco funciona, porque la lista debe serclear()ed de sus valores originales (pero obviamente, si lo borraantes de filtrado, no queda nada para filtrar ...):

persons.stream()
    .filter(p -> p.getAge() > 16)
    .forEach((p) -> persons.add(p));

(Además, preferiría una solución que no implique el uso de una biblioteca o marco de terceros)

Respuestas a la pregunta(1)

Su respuesta a la pregunta