【发布时间】:2021-07-25 03:22:18
【问题描述】:
我正在尝试根据第二个列表中的值过滤对象列表。
列表 A:
[
{
"id":"12345",
"name":"nameOfItem",
"description":"descriptionOfItem"
},
{
"id":"34567",
"name":"nameOfItem",
"description":"descriptionOfItem"
},
{
"id":"56789",
"name":"nameOfItem",
"description":"descriptionOfItem"
}
]
列表 B:
["12345", "56789"]
现在我想删除列表 A 中具有列表 B 中可用 ID 的项目。
我正在尝试使用 JavaStream 但无法理解语法,我正在尝试 ForEach 循环但它无法正常工作。
我在 Swift 中做了类似的事情,如下所示。
if let allModOptions = allModifersList?.first?.options {
let excludedIDs = pObj?.excluded_ids
if excludedIDs!.count > 0 {
let allowedOptions = allModOptions
->>>> **.filter{ !excludedIDs!.contains($0.id!)}** <<<<-
.filter{c in c.deleted_at == nil}.sorted {
$0.index ?? 0 < $1.index ?? 0
}
allModsList?.first?.options = allowedOptions
}
modisList.append(contentsOf: allModsList!)
}
感谢任何帮助
【问题讨论】:
-
请发布您的代码并解释您的问题
-
我正在尝试使用 JavaStream ... - 这是一个非常基本的问题。发布您的代码,以便我们了解您的确切位置。
-
我从 Swift 添加了我的单行解决方案,但无法理解相同的 Java Stream 语法。
标签: java sorting java-stream filtering