如何按收集者分组以获取内部类别列表?

时间:2019-11-25 09:41:57

标签: java java-8

我正在尝试按内部类中的url分组。

我有:

public class TripUpdateRequestDtos {

    private static final long serialVersionUID = 1L;

    private List<TripUpdateRequestDto> requestList = new java.util.ArrayList<TripUpdateRequestDto>();

    public List<TripUpdateRequestDto> getRequestList() {
        return requestList;
    }

    public void setRequestList(List<TripUpdateRequestDto> requestList) {
        this.requestList = requestList;
    }

    public void addReqInfo(String apiKey,Long jobTripId, String url)
    {
        requestList.add(new TripUpdateRequestDto(apiKey,jobTripId, url));
    }

    @Getter
    @Setter
    @NoArgsConstructor
    @AllArgsConstructor
    public static class TripUpdateRequestDto
    {
        private String apiKey;
        private Long jobTripId;

        @JsonIgnore
        private String url;

    }
}

我想通过使用地图和Java 8流进行分组:

Map<String, List<TripUpdateRequestDto>> tripMap = tripUpdateRequestDtos.getRequestList().stream()
                .collect(Collectors.groupingBy(???What shall I place here????));

Collectors.groupingBy应该根据url进行分组。我应该在Collectors.groupingBy()中放置什么?

请帮助并询问我是否不清楚。谢谢。

1 个答案:

答案 0 :(得分:4)

Map<String, List<TripUpdateRequestDto>> tripMap =   
    tripUpdateRequestDtos.getRequestList()
                         .stream()
                         .collect(Collectors.groupingBy(TripUpdateRequestDto::getUrl));

getUrl是返回url的方法。