eg:按菜的类型进行分组,并将菜名进行拼接
public class Dish {
private final String name;
private final boolean vegetarian;
private final int calories;
private final Type type;
}
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, 300, Dish.Type.FISH),
new Dish("salmon", false, 450, Dish.Type.FISH));
Map<Dish.Type, String> collect9 = menu.stream().collect(groupingBy(Dish::getType,
mapping(Dish::getName, joining(","))
));