JAVA8-Lambda- anyMatch&allMatch(检查流是否满足给定的条件)
一、anyMatch (检查流中是否至少包含一个满足条件的元素)
代码示例:
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
list.add(new Student("张三", 19, "杭州"));
list.add(new Student("王五", 19, "杭州"));
list.add(new Student("李四", 19, "海口"));
// 检查流中是否至少包含一个满足条件的元素
boolean bool = list.stream().anyMatch(student -> student.getName().equals("张三"));
System.out.println(bool);
示例说明:
当前list列表中含有三条记录,anyMatch(条件表达式)
表示在这个list列表中至少有一条记录满足当前条件表达式。
结果:
练习建议:
将list中的张三更名试一试,输出结果为false,因为当前list中不包含名字搅张三的人。
二、allMatch(检查流是否都满足给定的条件元素)
代码示例:
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
list.add(new Student("张三", 19, "杭州"));
list.add(new Student("王五", 19, "杭州"));
list.add(new Student("李四", 19, "海口"));
//检查流是否都满足给定的条件元素
boolean match = list.stream().allMatch(student -> student.getAge() == 19);
System.out.println(match);
}
示例说明:
当前list列表中含有三条记录,allMatch(条件表达式)
表示在这个list列表中是否所有记录都满足当前条件表达式。
结果:
练习建议:
将list中的任何一条记录的年龄改成不是19的数字试一试,输出结果为false,因为当前list中至少有一个人的年龄不满足当前条件表达式。