Stream流的概述及其特点,使用方法

· 在Java8中,得益于Lambda所带来的函数式编程,引入了一个全新的Stream流概念。

· 目的:用于简化集合和数组操作的API。

· Stream流式思想的核心

1.先得到集合或者数组的Stream流(就像一根传送带)。

2.把元素放上去

3.然后就用这个Stream流简化的API来方便的操作元素。

· Stream流的三类方法

1.获取Stream流

创建一条流水线,并把数据放到流水线上准备进行操作

2.中间方法

流水线上的操作,一次操作完毕之后,还可以继续进行其他操作

3.一个Stream流只能有一个终结方法,就是流水线上的最后一个操作

· 集合获取Stream流的方式

可以使用Collecting接口中的默认方法stream()生存流

default Streamstream()~~~~获取当前集合对象的Stream流

· 数组获取Stream流的方式

public static Streamstream(T[] array)~~~~获取当前数组Stream流

public staticStream of(T...values)~~~~获取当前数组/可变数据的Stream流

Stream流常用的API(中间操作方法)

· Streamfilter(Predicatepredicate)~~~~用于对流的数据进行过滤

· Streamlimit(long maxSize)~~~~获取前几个元素

· Streamskip(long n)~~~~跳过前几个元素

· Streamdistinct()~~~~去除流中重复的元素,依赖(hashCode和equals方法)

· staticStreamconcat(Stream a, Stream b)~~~~合并a,b两个流为一个流

ps:1.中间方法也称为非终结方法,调用完成后返回新的Stream流可以继续使用,支持链式编程。

        2.在Stream流中无法直接修改集合,数组中的数据。

Stream流的常见终结操作方法

· void forEach(Consumer action)~~~~对此流的每个元素执行遍历操作

· long count()~~~~返回此流中的元素

ps:终结操作方法,调用完成后就无法继续使用了,原因是不会返回Stream了。

Stream流的收集操作

· 收集Stream流的含义:就是把Stream流操作后的结果数据转回到集合或数组中去。

· Stream流:方便操作集合和数组的手段。

· 集合/数组:才是开发中的目的。

Stream流的收集方法

· R collect(Collector collector)~~~~开始收集Stream流,指定收集器。

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

· public staticCollector toList()~~~~把元素收集到List集合中

· public staticCollector toSet()~~~~把元素收集到Set集合中

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

你可能感兴趣的:(笔记,eclipse,intellij-idea)