- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这段代码:
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
目的?我改变了 anyMatch
至 peek
并添加了一个 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/
我有一个 List的 HashMap即 List> result .我想检查此列表中是否存在某个键值。 例如: Name Count Marvel 10 DC 0 我
这是对“If statement - variable order for null safety”的后续问题 假设我有一个“响应”对象列表。这包括一个字符串值,说明"is"或“否”。 如果所有成员都
我有几个 predicates我都想得到满足。 能满足那些谓词的东西是少数字符串。单个字符串不必满足所有(或任何)这些谓词,但在我查看最后一个字符串后,所有谓词都必须满足。 我用 Java 表示这个问
这个问题已经有答案了: Why does this stream return no element? (1 个回答) 已关闭 7 年前。 我有一个 JPA 类“Project”,其中包含 'Empl
我有一个 Parcelle 类,它具有三个属性 num 和 nature 以及 autre_nature。和 Parcelle listParcelles 列表。我正在体验 Java 8 Stream
令我困扰的是(出于性能原因),如果不先创建流,我就无法在列表上调用 allMatch、anyMatch。所以我开始创建这样的实用方法: public static boolean anyMatch(
我想比较 list2 中的任何对象是否存在于 list1 中。 我可以遍历两个列表并使用 .contains() 比较所有元素,但我想知道是否有更有效的方法。我找到了 this我正在尝试实现建议的方法
我有一个“项目”列表,每个项目都有一个 item.posts 属性(这是一个后实例列表)。 我想通过两个属性过滤我的“项目”列表: 如果“item.isBig”并且启用了项目的任何帖子,则收集返回的S
所以如果我有一个 Name 对象并且有一个 Name (names) 类型的 ArrayList,并且我想确定我的姓名列表是否包含给定的 Name 对象 (n),我可以通过两种方式进行: boolea
我有这段代码: boolean anyMatch = ifxStopChkInqRs.getBankSvcRs().stream().anyMatch( b -> b.getStopChkInqR
我正在测试一个使用 lambda 表达式来匹配值的 java 方法。 我想测试条件的真假。 employee.getAppraisals().stream().anyMatch(appraisal::
代码: class MockDefault : public Verifyingcalls::DefaultSCI_OCB { public: MOCK_METHOD0(op, voi
List results = new ArrayList<>(); results.add(true); results.add(true); results.add(true); resul
假设我有一个枚举 enum Country { China, USA, Others } 假设我有一个list1 = ["China", "Shanghai", "Beijin
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 3 年前。 Improve t
我想要以下逻辑:(我知道它不起作用,因为它不止一次消耗流)。但我不确定如何实现它。 Stream buffers = super.getBuffers().stream(); if (buffers.
我有一组货币为 Set和 RequiredCurrency 为 Set .我必须检查 currency set 中是否存在任何所需的货币。我写了BiPredicate对于如下所示,并尝试在 anyMa
我想查找字符串流是否至少出现一次另一个 String在Set .我想到了两个解决方案。 性能方面,哪种方法最好/推荐? 1) return source.stream().filter(this::s
给定三个这样的函数: private Optional abc() { return Optional.of(6); } private Optional def() { return
以下操作的 Groovy 模拟是什么? list.stream().anyMatch(b -> b == 0); 最佳答案 您的意思是查找列表是否包含元素 0? def list = [0,1,2,3
我是一名优秀的程序员,十分优秀!