33-结果分析
结果分析
在本节中,我们使用3个方法在一个流中的元素上验证了条件。
allMatch():该方法是一个结尾操作。作为参数,它接收用lambda表达式表示的一个Predicate接口的实现,或者就是一个实现了该接口的对象,并返回一个布尔值。如果在Stream的所有元素上,Predicate都返回了true,那么该方法返回true,否则返回false。anyMatch():该方法是一个结尾操作。作为参数,它接收用lambda表达式表示的一个Predicate接口的实现,或者就是一个实现了该接口的对象,并返回一个布尔值。如果在Stream的任意一个元素上,Predicate返回了true,那么该方法返回true,否则返回false。noneMatch():该方法是一个结尾操作。作为参数,它接收用lambda表达式表示的一个Predicate接口的实现,或者就是一个实现了该接口的对象,并返回一个布尔值。如果在Stream的所有元素上,Predicate都返回了false,那么该方法返回true,否则返回false。
我们还使用了两个方法,从 Stream 中获取元素。
findAny():该方法是一个结尾操作。它不接收参数并返回一个Optional对象,其泛型就是Stream元素的类型,Optional中会有流的元素。findAny()不能保证所返回的元素。如果Stream中没有元素,则findAny()所返回的Optional对象也是空的。findFirst():该方法是一个结尾操作。它不接收参数并返回一个Optional对象,其泛型就是Stream元素的类型。如果Stream有一个确定的相遇顺序,则findFirst()就会返回Stream的第一个元素;否则,返回任意一个元素。如果Stream中没有元素,则findFirst()所返回的Optional对象也是空的。