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