gpt4 book ai didi

java - 如何使用 peek 或 anyMatch 返回对象而不是流

转载 作者:行者123 更新时间:2023-11-30 10:36:18 24 4
gpt4 key购买 nike

我有这段代码:

boolean anyMatch = ifxStopChkInqRs.getBankSvcRs().stream().anyMatch(
b -> b.getStopChkInqRs().stream().anyMatch(
i -> i.getStopChkRec().stream()
.filter(d -> d.getStopChkInfo().getDesc().equals("D"))
.findFirst()
.isPresent()));

这会正确返回 true/false 值,并在找到第一个对象(如果有)时退出。

但是,我怎样才能返回对象本身,在本例中它的类型是 StopChkRec - i目的?我改变了 anyMatchpeek并添加了一个 get()findFirst() 前, 但返回了最高级别的流 - Stream<BankSvcRs> - 这当然超过了整个搜索目的。

欢迎提供任何帮助和/或重新构建此 lambda 表达式的方法。

最佳答案

这里是:

    Optional<StopChkRecType> findFirst = ifxStopChkInqRs.getBankSvcRs()
.stream()
.flatMap(b -> b.getStopChkInqRs().stream())
.flatMap(i -> i.getStopChkRec().stream())
.filter(d -> d.getStopChkInfo().getDesc().equals("D"))
.findFirst();

答案受到@ykaganovich 的启发,他用 flatMap 让我走上了正确的轨道,但也在 this链接解释了如何深入并干净利落。

关于java - 如何使用 peek 或 anyMatch 返回对象而不是流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40619075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com