public class PredicateDemo {
public static void main(String[] args) {
Predicate<Boolean> nonNull = Objects::nonNull;
Predicate<Boolean> isNull = Objects::isNull;
Predicate<String> isEmpty = String::isEmpty;
Predicate<String> isNotEmpty = isEmpty.negate();
List<User> users = Arrays.asList(
new User(100,"小明",18),
new User(200,"小芳",19),
new User(300,"小王",20),
new User(400,"小张",17),
new User(500,"小姚",15),
new User(600,"小李 子",18),
new User(700,"小桃子",19)
);
//统计年龄>=18岁的
List<User> userList = filter(users, (x)->x.getAge()>=18);
//统计名字是3个字的
List<User> userList1 = filter(users, (x)->{
//注意, 这里并不会改变list中的值
String tempName = x.getUserName().replace(" ","");
return tempName.length()==3;
});
/*userList1.forEach((x)->{
System.out.println("姓名: "+x.getUserName()+",年龄:"+x.getAge());
});*/
//找出年龄>=18岁的,并按年龄排序倒序
users.stream()
.filter((x->{return x.getAge()>=18;}))
.sorted((a,b)->{
return b.getAge()-a.getAge();
})
.forEach(x->{
System.out.println(x.getUserName()+"-"+x.getAge());
});
}
public static List<User> filter(List<User> userList,
Predicate<User> p){
List<User> users = new ArrayList<>();
for (User user: userList) {
if(p.test(user)){
users.add(user);
}
}
return users;
}
}
Java8 PredicateDemo
最新推荐文章于 2024-07-05 16:51:15 发布