gpt4 book ai didi

java - 在 Java 中使用 lambda 表达式进行嵌套 for 循环

转载 作者:行者123 更新时间:2023-12-02 02:11:30 25 4
gpt4 key购买 nike

我正在学习java中的lambda表达式。我有使用“for”循环的代码,如下所示:

for (RoutingCode routingCode: referencesDao.getRoutingCodes()) {
ReferencesUtil.routingCodeToXml(references.addElement("referenceType"), routingCode);

for (AutoCreateIssue ac: referencesDao.getAutoCreateIssues(routingCode.getId())) {
ReferencesUtil.autoCreateIssueToXml(references.addElement("referenceType"), ac);
}
}

我想为上面的内容编写一个 lambda 表达式。如果只有一个 for 循环,我可以编写 lambda 表达式,但当存在嵌套的 for 循环时,我无法编写 lambda 表达式。如有任何帮助,我们将不胜感激。

这是我在一个循环中尝试的:

referencesDao.getRoutingCodes().stream().forEach(routingCode -> ReferencesUtil.routingCodeToXml(references.addElement("referenceType"), routingCode));

最佳答案

由于 referencesDao.getRoutingCodes() 似乎返回一个列表,因此您应该能够直接使用 forEach 而无需流式传输。看来这就是您想要实现的目标。

referencesDao.getRoutingCodes()
.forEach(routingCode -> {
references.addElement("referenceType", routingCode);
referencesDao
.getAutCreatedIssues(routingCode.getId())
.forEach(ac -> ReferenceUtil
.autoCreateIssueToXml(
references.addElement(
"referenceType",
ac
)
)
);
});

这只是提供一个想法。它可能需要一些调整,因为我很容易误解一些字段和方法。

例如:

for (AutoCreateIssue ac: referencesDao.getAutoCreateIssues(routingCode.getId()))

如果getAutoCreateIssues返回一个集合,则可以使用内置方法forEach。但如果返回一个数组并使用隐式迭代器,则需要对该数组进行流式传输。我的示例假设它是一个集合(可能是一个 List 实现)。

关于java - 在 Java 中使用 lambda 表达式进行嵌套 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67687269/

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