Java流过滤器2级列表

问题描述 投票:0回答:3

我有2个班级AB

class A

{
  int id,
  List<B>
}

class B

{
  int id
}

现在给定List<A>,我想过滤掉所有的[C0

3

例如

B.id

List<A>

预期结果是

{
  [
    id: 1,
    Bs: [1, 2, 3, 4, 5]
  ],
  [
    id: 2,
    Bs: [1, 2, 3, 4, 5]
  ]
}

如何处理{ [ id: 1, Bs: [1, 2, 3] ], [ id: 2, Bs: [1, 2, 3] ] } ?谢谢!!

java stream java-stream
3个回答
1
投票

您可以使用:

: { [ id: 1, Bs: [1, 2, ...

0
投票

为什么不使用简单的for循环:

listB = listB.stream()
      .map(a -> a.getListB().removeIf(b -> b.getId() > 3))
      .collect(toList());

0
投票

我不确定您是否需要for (A a : listOfAs) { a.listOfBs.removeIf(b -> b.id > 3); }

仅迭代输入Stream的元素,然后从List列表中删除元素:

B
© www.soinside.com 2019 - 2024. All rights reserved.