gpt4 book ai didi

列表过滤器中的 Java 8 lambda 列表

转载 作者:搜寻专家 更新时间:2023-10-31 19:59:49 27 4
gpt4 key购买 nike

示例 JSON

[
{
"id": "1",
"products": [
{
"id": "333",
"status": "Active"
},
{
"id": "222",
"status": "Inactive"
},
{
"id": "111",
"status": "Active"
}

]
},
{
"id": "2",
"products": [
{
"id": "6",
"status": "Active"
},
{
"id": "7",
"status": "Inactive"
}
]
}
]

我想检索至少具有一种有效产品的对象列表。

下面的代码返回产品列表,但我想要一个 ProdcutResponse 列表。有什么办法吗?

 response.stream()
.map(ProductResponse::getProducts)
.filter(s -> "Active".equals(s.getType()))
.collect(Collectors.toList())

最佳答案

因为您没有显示太多代码,所以这将是一个盲目的尝试。我的主要建议是不要映射 Stream<ProductResponse>Stream<List<Product>>在将其收集到列表之前:

response.stream()
.filter(pr -> pr.getProducts().stream().anyMatch(s -> "Active".equals(s.getType())))
.collect(Collectors.toList());

您可以更改 anyMatchallMatch如果你想要 List<ProductResponse>包含 Product s 具有 Activity 类型(无论那是什么意思)。

关于列表过滤器中的 Java 8 lambda 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47482391/

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