what is the difference b/w these 2 ways of finding a max calorie dish from the menu list?
List<Dish> menu = Arrays.asList( new Dish("pork", false, 800, Dish.Type.MEAT),
new Dish("beef", false, 700, Dish.Type.MEAT),
new Dish("chicken", false, 400, Dish.Type.MEAT),
new Dish("french fries", true, 530, Dish.Type.OTHER),
new Dish("rice", true, 350, Dish.Type.OTHER),
new Dish("season fruit", true, 120, Dish.Type.OTHER),
new Dish("pizza", true, 550, Dish.Type.OTHER),
new Dish("prawns", false, 400, Dish.Type.FISH),
new Dish("salmon", false, 450, Dish.Type.FISH));
Optional<Dish> maxCalorieDish = menu.stream()
.max((c1,c2) -> c1.getCalories().compareTo(c2.getCalories()));
System.out.println(maxCalorieDish);
Optional<Dish> maxCalorieDish1 = menu.stream()
.collect(maxBy((c1,c2) -> c1.getCalories().compareTo(c2.getCalories())));
System.out.println(maxCalorieDish1);