Павел С.цитируетв прошлом месяце
в классе Collectors есть перегруженный фабричный метод groupingBy, принимающий второй аргумент типа Collector наряду с обычной функцией классификации. Таким образом, появляется возможность перенести предикат фильтрации внутрь этого второго коллектора, вот так:

Map> caloricDishesByType =

menu.stream()

.collect(groupingBy(Dish::getType,

filtering(dish -> dish.getCalories() > 500, toList())));

filtering — еще один статический фабричный метод класса Collectors, принима­ющий в качестве параметров предикат для фильтрации элементов в каждой из групп и еще один коллектор для перегруппировки профильтрованных элементов.
  • Войти или зарегистрироваться, чтобы комментировать