Stream流

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Stream流相关的知识,希望对你有一定的参考价值。

参考技术A 1.  Collection体系的集合可以使用默认方法stream​()生成流(default Stream<E> stream​())

2.  Map体系的集合间接的生成流

3.  数组可以通过Stream接口的静态方法of​(T...values)生成流

1)Stream<T> filter​(Predicate predicate):用于对流中的数据进行过滤

    Predicate接口中的方法 boolean test​(T t):对给定的参数进行判断,返回一个布尔值

2)Stream<T> limit​(long maxSize):返回此流中的元素组成的流,截取前指定参数个数的数据

3)Stream<T> skip​(long n):跳过指定参数个数的数据,返回由该流的剩余元素组成的流

4)static <T> Stream<T> concat​(Stream a, Stream b):合并a和b两个流为一个流

5)Stream<T> distinct​():返回由该流的不同元素(根据Object.equals(Object) )组成的流

6)Stream<T> sorted​():返回由此流的元素组成的流,根据自然顺序排序

7)Stream<T> sorted​(Comparator comparator):返回由该流的元素组成的流,根据提供的Comparator进行排序

8)<R> Stream<R> map​(Function mapper):返回由给定函数应用于此流的元素的结果组成的流

        Function接口中的方法 R apply​(T t)

9)IntStream mapToInt​(ToIntFunction mapper):返回一个IntStream其中包含将给定函数应用于此流的元素的   结果

        IntStream:表示原始 int 流

        ToIntFunction接口中的方法 int applyAsInt​(T value)

练习

现在有两个ArrayList集合,分别存储6名男演员名称和6名女演员名称,要求完成如下的操作

男演员只要名字为3个字的前三人

女演员只要姓林的,并且不要第一个

把过滤后的男演员姓名和女演员姓名合并到一起

把上一步操作后的元素作为构造方法的参数创建演员对象,遍历数据

演员类Actor已经提供,里面有一个成员变量,一个带参构造方法,以及成员变量对应的get/set方法

对数据使用Stream流的方式操作完毕后,我想把流中的数据收集到集合中,该怎么办呢?

Stream流的收集方法:R collect​(Collector collector)但是这个收集方法的参数是一个Collector 接口

工具类Collectors提供了具体的收集方式

public static <T> Collector toList​():把元素收集到List集合中

public static <T> Collector toSet​():把元素收集到Set集合中

public static  Collector toMap​(Function keyMapper,Function valueMapper):把元素收集到Map集合中

以上是关于Stream流的主要内容,如果未能解决你的问题,请参考以下文章

Stream流体系

Java25Stream流:集合对象.stream()

Stream消息流 和 Stream Grouping 消息流组

Stream流

jdk8新特性-Stream流详解及使用样例(Stream创建使用收集并行流注意事项)

jdk1.8新特性——Stream(流)的创建