繁体   English   中英

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

[英]get all object from 1 list of 1 list by stream in java 8?

我有 2 个班级,这个:

public class TimeCardResponse {
   private String login;
   List<TimeCardDetail> timeCardDetails;
}

和这个:

public TimeCardDetail(String workingDay, Float workingTime) {
    this.workingDay = workingDay;
    this.workingTime = workingTime;
}
    input : a List<TimeCardResponse>

我想在List<String>获取TimeCardDetail类的所有workingDay并在 Java 8 中使用Stream

List<String> workingDays  = a.stream().map(TimeCardResponse::getTimeCardDetails)
                .filter(x-> Objects::nonNull)
                .flatMap(List::stream)
                .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<String>

转换List的stream<object> 列表中所有对象的 stream<div id="text_translate"><p> 以下 lambda 表达式采用 HashMap 的值,在其 ArrayList 中获取对象列表,将所有此类对象添加到另一个 ArrayList,然后在满足条件时打印每个属性。</p><p> 这行得通,但我有点沮丧,我不知道如何一步完成,就像不使用两个 lambda 表达式一样。</p><pre> Map<Integer, Person> people = new HashMap<Integer, Person>(); ... List<Object> objects = new ArrayList<Object>(); people.values().stream().map(p->p.getObjects()).forEach(p->objects.addAll(p)); //note: can be multiple objects.stream().filter(p->p.getClass().toString().contains("Keyword")).forEach(p->System.out.println(p.display()));</pre><p> 那么有没有一种方法可以将 go 从第 2 行直接转到第 5 行,这实际上会将对象列表的 stream 转换为所有对象本身的 stream?</p></div></object>

[英]Convert stream of List<Object> to stream of all Objects in the List

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 列表中的 Java Stream<object[]> 到一个列表<mydto></mydto></object[]> 如何获取地图<String, List<Object> &gt; 来自 Java 8 中的流 使用java流从另一个对象列表更新对象列表 从 Java Object stream 中的两个列表加入列表 Java-从列表中获取对象? 如何使用Java 8 Stream从Map列表中的字符串中获取列表? 如何使用java流从包含多个不同mysql日期的列表对象中获取地图对象 Java列表流,获取所有元素还是只有一个? 如何使用lambda或流从包含另一个对象列表的对象列表中迭代和获取对象 转换List的stream<object> 列表中所有对象的 stream<div id="text_translate"><p> 以下 lambda 表达式采用 HashMap 的值,在其 ArrayList 中获取对象列表,将所有此类对象添加到另一个 ArrayList,然后在满足条件时打印每个属性。</p><p> 这行得通,但我有点沮丧,我不知道如何一步完成,就像不使用两个 lambda 表达式一样。</p><pre> Map<Integer, Person> people = new HashMap<Integer, Person>(); ... List<Object> objects = new ArrayList<Object>(); people.values().stream().map(p->p.getObjects()).forEach(p->objects.addAll(p)); //note: can be multiple objects.stream().filter(p->p.getClass().toString().contains("Keyword")).forEach(p->System.out.println(p.display()));</pre><p> 那么有没有一种方法可以将 go 从第 2 行直接转到第 5 行,这实际上会将对象列表的 stream 转换为所有对象本身的 stream?</p></div></object>
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM