如何从方法Collectors.groupingBy获取有序类型的Map

Юри*_*ица 10 java grouping linkedhashmap java-8 collectors

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

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

但是如何从方法"Collectors.groupingBy"获取LinkedHashMap而不是HashMap.我在javadoc中找到了一些数据但是我不能得到我必须用这个方法做的事情:

Map<String,List<Dish>> dishMap = menu.stream().collect(Collectors.groupingBy(
                Dish::getType,
                LinkedHashMap::new, ????));
Run Code Online (Sandbox Code Playgroud)

我应该在方法"groupingBy"的第三个参数中放置什么才能得到我需要的东西?

Flo*_*own 15

你应该使用toList Collector:

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