在Java8中,通过流从1个列表中的1个列表中获取所有对象?

在Java8中,通过流从1个列表中的1个列表中获取所有对象?,java,spring,Java,Spring,我有两个班,这是: public class TimeCardResponse { private String login; List<TimeCardDetail> timeCardDetails; } 公共类TimeCardResponse{ 私有字符串登录; 列出时间表详情; } 这是: public TimeCardDetail(String workingDay, Float workingTime) { this.workingDay = wor

我有两个班,这是:

public class TimeCardResponse {
   private String login;
   List<TimeCardDetail> timeCardDetails;
}
公共类TimeCardResponse{
私有字符串登录;
列出时间表详情;
}
这是:

public TimeCardDetail(String workingDay, Float workingTime) {
    this.workingDay = workingDay;
    this.workingTime = workingTime;
}
    input : a List<TimeCardResponse>
公共时间卡详细信息(字符串工作日、浮动工作时间){
this.workingDay=工作日;
this.workingTime=工作时间;
}
输入:列表
我想在Java 8中使用
Stream
获取类
TimeCardDetail
的所有
workingDay
,并使用
Stream

List workingDays=a.Stream().map(TimeCardResponse::getTimeCardDetails)
List<String> workingDays  = a.stream().map(TimeCardResponse::getTimeCardDetails)
                .filter(x-> Objects::nonNull)
                .flatMap(List::stream)
                .map(TimeCardDetail::getWorkingDay).collect(toList());

.filter(x->Objects::非空) .flatMap(列表::流) .map(TimeCardDetail::getWorkingDay).collect(toList());
假设您有一些
getWorkingDay
方法:

List<String> workDays = timeCardDetails.stream()
                                       .map(TimeCardDetail::getWorkingDay)
                                       .filter(Objects::nonNull)    //filter out null values
                                       .collect(Collectors.toList());
List workDays=timeCardDetails.stream()
.map(TimeCardDetail::getWorkingDay)
.filter(Objects::nonNull)//筛选出空值
.collect(Collectors.toList());
它将返回时间卡工作日的
列表