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&nbsp;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)