一、Stream 流的使用
生成流
通过数据源(集合,数组等)生成流。.stream()
生成方式
1.Collection体系可以使用默认方法stream()生成流。
2.Map体系的集合间接的生成流。
3.数组可以通过Stream接口的静态方法of(T…values)生成流
中间操作
一个流后面可以跟0个或多个中间操作,其目的主要是打开流,做出某种程度的数据过滤、映射,然后返回一个新的流,交给下一个操作使用。
filter():对流中的数据进行过滤。
limit:返回此流中的元素组成的流,截取前指定参数个数的数据。 skip:跳过指定参数个数的数据,返回由该流的剩余元素组成的流。
concat(Stream a, Stream b):合并a和b两个流为一个流。 distinct():返回该流的不同元素组成的流,根据Object.equals(Object)判断
sorted():返回此流的元素根据自然顺序排序组成的流。sorted(Comparator comparator):返回此流的元素根据提供的Comparator进行排序组成的流。
map(Function mapper):返回由此给定函数应用于此流的元素的结果组成的流。mapToInt(ToIntFunction mapper):返回一个IntStream,其中包含将给定函数应用于此流的元素的结果。
终结操作
一个流只能有一个终结操作,当这个操作执行后,流就被用“光”了,无法再被操作。
foreach() && count()
二、练习
熟练用法:
三、Stream流收集
list
set
map