Java 8 lambda Collectors.groupingBy with Collector.toList()中的map

Ser*_*gii 6 java lambda java-8 java-stream

我已经实现了以下示例:

Map<String, List<Event>> map = events.getItems().stream()
        .collect(Collectors.groupingBy(Event::getStatus, Collectors.toList()));
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得输出Map<String, List<EventDto>> map

一个EventDto可以通过执行其中转换外部方法获得EventEventDto.例如 - this::convertFromEventToEventDto.

Era*_*ran 13

您需要mapping CollectorEvent元素映射到EventDto元素:

Map<String, List<EventDto>> map = 
    events.getItems()
          .stream()
          .collect(Collectors.groupingBy(Event::getStatus, 
                                         Collectors.mapping(this::convertFromEventToEventDto,
                                                            Collectors.toList())));
Run Code Online (Sandbox Code Playgroud)