我在列表中列出了这个列表:
List<List<ScheduleContainer>> scheduleIntervalContainersOfWeek
我的目标是拥有此列表
List <List<ScheduleContainer>> scheduleIntervalContainersOfWeek
使用ScheduleIntervalContainers,其中interspace为null或false。
因此,我将首先将所有ScheduleContainers转换为ScheduleIntervalContainer(ScheduleContainer是SchedueIntervalContainer的基类),然后我将删除ScheduleIntervalContainer的字段 interspace 为true的所有ScheduleIntervalContainer。
我尝试过:
scheduleIntervalContainersOfWeek.stream().filter(...)
但我不知道filter方法中的lambda表达式。
目前我已经解决了这个问题:
for (final List<ScheduleContainer> scheduleContainers : scheduleIntervalContainersOfWeek) {
for (final ScheduleContainer scheduleContainer : scheduleContainers) {
final ScheduleIntervalContainer scheduleIntervalContainer = (ScheduleIntervalContainer)scheduleContainer;
// if sic is absence container than continue (absence sics are shown in schedule)
if (scheduleIntervalContainer.getInterspace()) {
continue;
}
答案 0 :(得分:1)
试试这个:
scheduleContainers = scheduleContainers.stream()
.filter(sc -> !Boolean.TRUE.equals(((ScheduleIntervalContainer)sc).getInterspace()))
.collect(Collectors.toList());
请注意使用Yoda condition以避免需要进行空检查。