一、Stream流创建
1、Stream.of(x,x,x,x,xx,);
2、list.stream();
3. Array.stream( arr );
4 、无限流:
迭代:Stream.iterate(0,t -> t+5).limit(50).forEach(s -> System.out.println(s));
二、stream 中间操作
1、筛选与切片
① filter过滤: li.stream().filter(i -> i>40).forEach(System.out::println);
② limit 截断:li.stream().limit(4).forEach(System.out::println);
③ skip 跳过 li.stream().skip(4).forEach(System.out::println);
④ distinct 去重 (根据hashcode和equals判断,必要时要重写)
li.stream().distinct ().forEach(System.out::println);
2、映射
①map(Function f)、按照f的方法处理集合并返回一个新的集合
li.stream().map(s -> s.toUpperCase()).forEach(so::p);
②flatMap(Function f) 将传入值中的值重新写道一个新的流中
3、排序
①、sorted()自然排序
②、sorted(Comparator com)定制排序,要实现Comparator 接口
三、终止操作
1、匹配与查找
①、allMatch(function f)是否都满足f,返回boolean
②、anyMatch(function f)只要有一个满足就可以 返回boolean
③、nonematch (function f) 是否一个都不匹配 返回boolean
④、findFirst() 返回第一个值,返回optional对象
⑤、findAny ()返回任意一个
⑥、count() 求和
⑦、max(comparetor con)
⑧、min()
2、归约
①、reduce(T,function(T,T))
3、收集
collect(Collector c)