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
对象也是空的。