gpt4 book ai didi

java - 我们可以在 Java 8 中使用流来合并这三个嵌套的 for 循环吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:45:14 24 4
gpt4 key购买 nike

在尝试使用 Streams 转换以下代码时,我遇到了一些错误。我无法使用流来转换它。我无法使用 Streams 合并 for 循环

下面的代码是必须使用流进行更改的代码。

     for (Admin ah : subProducers) {
List<String> wns = ah.getAdminSitCodes().stream()
.map(new SitCodeMap()).map(Pair::getFirst)
.distinct().collect(Collectors.toList());

for (String wn : wns) {
for (String value : values) {
if (wn.equals(value)) {
admin.add(ah);
}
}
}
}

我试过如下所示

     admin = subProducers.stream().map(sp-> sp.getAdminSitCodes().stream()
.map(new SitCodeMap())

.map(Pair::getFirst).distinct()).collect(Collectors.toList())
.stream()
.filter(wns->values.stream().anyMatch(v-
>wns.equals(v)))
.collect(Collectors.toList());

必须使用流将其转换为列表

最佳答案

您可以为 values 使用 Set 集合,然后将代码完成为:

List<Admin> admin = subProducers.stream()
.filter(a -> a.getAdminSitCodes().stream()
.map(new SitCodeMap())
.map(Pair::getFirst) // assuming this is Stream<String>
.distinct()
.anyMatch(values::contains))
.collect(Collectors.toList());

关于java - 我们可以在 Java 8 中使用流来合并这三个嵌套的 for 循环吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55380823/

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