首页 > 解决方案 > 如何使用布尔条件过滤java流?

问题描述

我正在尝试使用如下布尔条件过滤列表。但这不起作用。

public void write(List<? extends Student> items) {
    List<Student> list = items.stream().filter( student -> 
          checkAge(student.getage())).collect(Collectors.toList());
    super.write(list);
 }

 public boolean checkAge(String age) {
    if (age.length() < 5 && age.length() > 60) {
        return false;
    }

    return true;
 }

标签: javajava-8

解决方案


一个数量永远不能同时小于5和大于60。所以,下面的代码没有意义:

if (age.length() < 5 && age.length() > 60) {
    return false;
}

您想将其更改为:

if (age.length() < 5 || age.length() > 60) {
    return false;
}

推荐阅读