Joy*_*Joy 6 java java-8 java-stream
我有一个aList类对象列表A.这aList是另一个列表的每个元素b的成员bList.每个元素b都是类B.课程结构B如下:
class B {
String status;
String name;
}
Run Code Online (Sandbox Code Playgroud)
课程结构A如下:
class A {
List<B> bList;
String status;
}
Run Code Online (Sandbox Code Playgroud)
现在我想过滤aList如下:
最终列表aListResult应仅包含对象a,如果a.status ="Active"以及aList的每个"Active"a应bList仅包含"Active"b对象,即如果b将关联,bList当且仅当b.status ==活性.
我怎么能在Java 8中实现这一点,我无法弄清楚.
我假设您希望输出List仅包含所有关联的B实例都处于活动状态的活动A实例:
List<A> aList = ...;
List<A> aListResult =
aList.stream()
.filter(a -> a.getStatus().equals("Active"))
.filter(a -> a.bList.stream().allMatch(b -> b.getStatus().equals("Active")))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)