我需要按类型将数据列表分成不同的列表,为此,我使用构造

Map<String,List<Dish>> dishMap = menu.stream()
         .collect(Collectors.groupingBy(Dish::getType));

但是如何从方法“Collectors.groupingBy”中获取LinkedHashMap而不是HashMap。我在javadoc中发现了一些数据,但无法获得使用此方法必须做的事情:
Map<String,List<Dish>> dishMap = menu.stream().collect(Collectors.groupingBy(
                Dish::getType,
                LinkedHashMap::new, ????));

我应该在方法“groupingBy”的第三个参数中放置什么以获取所需的信息?

最佳答案

您应该使用toList Collector:

Map<String,List<Dish>> dishMap = menu.stream().collect(Collectors.groupingBy(
            Dish::getType,
            LinkedHashMap::new, Collectors.toList()));

09-29 20:55