背景:
在做发布前code review时,看到下面这段代码
workShiftOrderDTOS = workShiftOrderDTOS.stream()
.filter(x -> x.getShiftDO().isFullDayWorkShift() == false)
.collect(Collectors.toList());
开发同学新增了1个筛选条件
workShiftOrderDTOS = workShiftOrderDTOS.stream()
.filter(x -> x.getShiftDO().isFullDayWorkShift() == false)
.filter(x -> x.getShiftDO().canViewShift())
.collect(Collectors.toList());
思考
由上面的code review,思考下面2段对集合进行filter的代码,返回结果是一致的,性能上有差异嘛?
@Data
class Employee {
private String gender;
private Integer age;
}
public static void main(String[] args) {
List employees = Lists.newArrayList();
// >1个filter
employees.stream()
.filter(employee -> employee.getAge() > 32)
.filter(e