Java 8的流(Stream)和Lambda表达式判断List中的gender为男性时,age是否为空
- 在Java 8及以上版本中,您可以使用Stream API的filter和anyMatch方法来判断List中的gender为男性时,age是否为空。这里假设User类有getAge和getGender方法。
import java.util.*; class User { private String name; private String age; // 构造函数、getter和setter方法等... public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; }
} }// 用户列表
List<User> userList = new ArrayList();// 判断是否有为空的
userList.stream() .filter(user -> "男性".equals(user.getGender())) .anyMatch(user -> user.getAge() == null);
-
这段代码首先通过filter方法过滤出gender为男性的用户,然后通过anyMatch方法检查这些用户中是否有age为空的情况。如果有,anyMatch方法会返回true,否则返回false。
-
注意,这段代码假设User类有getGender和getAge方法来获取性别和年龄。如果User类没有这些方法,您需要用相应的方法来替代。
-
同时,如果要检查年龄是否为空,通常我们会使用null检查,而不是直接比较年龄是否等于某个特定值(比如0或者空字符串)。因为在大多数情况下,年龄为0或者空字符串是不符合实际情况的。