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

前端之家收集整理的这篇文章主要介绍了Java 8 lambda Collectors.groupingBy with Collector.toList()中的map前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经实现了以下示例:
Map<String,List<Event>> map = events.getItems().stream()
        .collect(Collectors.groupingBy(Event::getStatus,Collectors.toList()));

如何获得Map< String,List< EventDto>>的输出?地图而不是?

可以通过执行将事件转换为EventDto的外部方法获取EventDto.例如 – this :: convertFromEventToEventDto.

解决方法

您需要一个映射收集器来将Event元素映射到EventDto元素:
Map<String,List<EventDto>> map = 
    events.getItems()
          .stream()
          .collect(Collectors.groupingBy(Event::getStatus,Collectors.mapping(this::convertFromEventToEventDto,Collectors.toList())));

猜你在找的Java相关文章