Example :
In this example we take all foods are in a supermarket. We want only available products grouped by food category and ordered by price.
List<Food> allFoodsAvailableGroupByCategorySortedByPrice =
supermarket.getFoods() .stream() .filter(food -> food.isAvailable()) .sorted(Comparator.comparing(Food::getPrice)) .collect(groupingBy(Food::getCategory));