1.1为什么要用Stream流.
简化集合操作的
1.2 Stream流的三类方法
forEach指的是为每一个元素执行操作
获取Stream流
创建一条流水线,并把数据放到流水线上准备进行操作
中间方法
流水线上的操作。
一次操作完毕之后,还可以继续进行其他操作。
终结方法
一个Stream流只能有一个终结方法
是流水线上的最后一个操作
1.3 Stream流的获取方法
单列集合
可以使用Collection接口中的默认方法stream()生成流default Stream stream()
双列集合
间接的生成流
可以先通过keySet或者entrySet获取一个Set集合,再获取Stream流
数组
数组:Arrays.stream(数组) / Stream.of(数组);
同种数据类型的多个数据
1,2,3,4,5….
“aaa”,“bbb”,“ccc”….
使用Stream.of(T…values)生成流
代码:
1.4 Stream流的常见中间操作方法
Stream filter(Predicate predicate):用于对流中的数据进行过滤
Stream limit(long maxSize):截取指定参数个数的数据取集合中的前几个
Stream skip(long n):跳过指定参数个数的数据 跳过集合中的前几个
static Stream concat(Stream a, Stream b):合并a和b两个流为一个流
Stream distinct():去除流中重复的元素。依赖(hashCode和equals方法)
map(Function(<? Super T>,<? Extends R> mapper)):数据类型转化
1.5 Stream流的常见终结操作方法
void forEach(Consumer action):对此流的每个元素执行操作
Consumer接口中的方法 void accept(T t):对给定的参数执行此操作
long count():返回此流中的元素数
补充
1.6 Stream流的收集操作
使用Stream流的方式操作完毕之后,我想把流中的数据起来,该怎么办呢?
Stream流的收集方法
R collect(Collector collector)
工具类Collectors提供了具体的收集方式
public static Collector toList():把元素收集到List集合中
public static Collector toSet():把元素收集到Set集合中
public static Collector toMap(Function keyMapper,Function valueMapper):把元素收集到Map集合中
1.7 总结
1.Stream流的作用
结合了Lambda表达式,简化集合、数组的操作
2.stream的使用步骤
a.获取Stream流对象
b.使用中间方法处理数据
c. 使用终结方法处理数据
3.如何获取Stream流对象
a.单列集合: Collection中的默认方法stream
b.双列集合:不能直接获取
c. 数组: Arrays工具类型中的静态方法stream
d.一堆零散的数据: stream接口中的静态方法of
4.常见方法
中间方法:filter, limit, skip, distinct, concat, map
终结方法:forEach, count, collect