java-8 фильтрует список без создания нового списка
Я ищу самый чистый способ фильтрации списка в Java-8, с простой лямбдаPredicate
, без создания нового списка.
В частности, это решение не подходит, так какtoList()
возвращает новыйList
:
List<Person> beerDrinkers = persons.stream()
.filter(p -> p.getAge() > 16)
.collect(Collectors.toList());
Обратите внимание, что следующее решение также не работает, потому что список должен бытьclear()
Ed его первоначальных значений (но, очевидно, если вы очистите егодо фильтровать, нечего фильтровать ...):
persons.stream()
.filter(p -> p.getAge() > 16)
.forEach((p) -> persons.add(p));
(Кроме того, я бы предпочел решение, не включающее использование сторонней библиотеки или фреймворка)