java8 stream接口终端操作 anyMatch,allMatch,noneMatch。
在流上可以执行很多操作,这些操作分为中间操作(返回Stream)和终结操作(返回确定类型的结果),中间操作允许链式串接。要注意,流上的操作不会改变数据源
这里的distinct()方法就是一个内部操作,会在之前流的基础上创建一个元素唯一的流,而count()方法就是一个终结操作,会返回流的大小。
Stream 操作
迭代 Iterating
Stream API可以替换for、for-each、while循环,使用该方法,开发者可以专注于操作的逻辑,而无需关心元素序列的迭代。如:
过滤 Filtering
filter()方法可用于挑选满足断言的流元素,举例来说,如果有一个这样的流:
下面的代码会创建该列表对应的一个字符串流,找到流中所有包含字符“d”的元素,并将过滤出的元素组成一个新的流:
匹配 Matching
Stream API提供了一组方便的工具来根据某些断言验证一系列元素,要实现该目标,可以使用以下三个方法之一:anyMatch(), allMatch(), noneMatch(),每个函数的功能都一目了然,这些都是返回布尔值的终结操作:
收集 Collecting
归集操作也可以通过collect()方法实现。在将流转换为集合、映射或使用一个字符串表示一个流时,该操作非常方便。还有一个工具类Collectors,提供了几乎所有常用的收集操作,对于一些复杂的任务,额可以创建自定义收集器。
领取专属 10元无门槛券
私享最新 技术干货