Java 8: Cool example to filter, compare and group by something using lambdas and streams

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

Leave a comment