Stream流
为什么要使用Stream流?
在java8之前,我们一般通过使用 for 循环或者是 Iterator 迭代来进行去数据的排序或者数据的筛选,但当遇到大量的数据时,效率并不理想。因此在java8后,添加一个Stream流,更加处理数据的排序或筛选等操作,效率也更为理想。
Stream流的使用步骤
1.Stream流的生成方式
(1)Collection体系的集合生成方式
因为Collection里有Stream()方法,所以其子类或者实现类都可以使用其默认的Stream()方法来进行生成Stream流。
如: List<String> list=new ArrayList<String>();
Stream<String> listStream=list.stream();//生成流。
(2)Map体系集合(间接生成)
首先Map集合不能直接生成Stram流,但可以通过Map集合里面的keySet()和values()分别得到关于键和值的List集合和Set集合来进行生成Stream流,或者是通过entrySet()方法获得Map.Entry集合类型来生成Stream流。
(3)数组生成方式
数组可以通过Stream流中的静态方法方法of(T…values)生成流;
注意:Stream流主要适用于引用数据类型的,所以当为基本数据类型时,是需要使用它的包装类型
2.Stream流常见的中间操作
(1)常见的中间操作方法
注意事项:主要是可以通过 Lambda 表达式来进行一系列的中间操作。可以看看我之前对于Lambda表达式有关的博客链接: https://blog.csdn.net/weixin_46870007/article/details/120262279
(2)常见的收集方法
当对于集合中的数据进行一系列的筛选或者排序等操作后,则需要对其进行收集到集合中。因此Stream接口也提供收集方法:R collect(Collector collector)。
其中Collector为接口,所以需要运用到工具类Collectors,提供了具体的收集方式;
3.Stream流的终结操作
其中forEach()可以通过Lambda表达式进行操作。