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或者空字符串是不符合实际情况的。