Я играл с Java 8 lambdas, чтобы легко фильтровать коллекции. Но я не нашел краткого способа получить результат как новый список в одном и том же выражении. Вот мой самый краткий подход:
List<Long> sourceLongList = Arrays.asList(1L, 10L, 50L, 80L, 100L, 120L, 133L, 333L);
List<Long> targetLongList = new ArrayList<>();
sourceLongList.stream().filter(l -> l > 100).forEach(targetLongList::add);
Примеры в сети не ответили на мой вопрос, потому что они останавливаются, не создавая новый список результатов. Должен быть более сжатый способ. Я бы предположил, что класс Stream
имеет методы как toList()
, toSet()
,...
Есть ли способ, которым переменные targetLongList
могут быть напрямую назначены третьей строкой?