Stream
2023-08-25 14:57:05 0 举报
登录查看完整内容
javaStream流
作者其他创作
大纲/内容
总纲截图
感谢作者付出
数据来源
Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选、排序、聚合等。
什么是steam
每次返回一个新的流,可以有多个。
中间操作
终端操作,每个流只能进行一次终端操作,终端操作结束后流无法再次使用。终端操作会产生一个新的集合或值
终端操作
Stream可以由数组和集合创建,对流的操作分为俩类
1.stream不存储数据,而是按照特定的规则对数据进行计算,一般会输出结果。
2.stream不会改变数据源,通常情况下会产生一个新的集合或一个值。
3.stream具有延迟执行特性,只有调用终端操作时,中间操作才会执行。
特性
Stream概述
List<String> list = Arrays.asList(\"a\
1.通过 java.util.Collection.stream() 方法用集合创建流
2.使用java.util.Arrays.stream(T[] array)方法用数组创建流
3.使用Stream的静态方法:of()、iterate()、generate()
//顺序流转换成并发流 Optional<String> first = list.stream().parallel().filter(x -> x > 6).findFirst();
4.顺序流转换成并发流
顺序流和并发流截图
Stream的创建
使用前先了解Optional
数据准备
Stream也是支持类似集合的遍历和匹配元素的,只是Stream中的元素是以Optional类型存在的。Stream的遍历、匹配非常简单
1.遍历/匹配(foreach/find/match)
筛选,是按照一定的规则校验流中的元素,将符合条件的元素提取到新的流中的操作
List<Person> personList = new ArrayList<Person>(); personList.add(new Person(\"Tom\
2.筛选(filter)
max、min、count这些字眼你一定不陌生,没错,在mysql中我们常用它们进行数据统计。Java stream中也引入了这些概念和用法,极大地方便了我们对集合、数组的数据统计工作
3.聚合(max/min/count)
map:接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素。
flatMap:接收一个函数作为参数,将流中的每个值都换成另一个流,然后把所有流连接成一个流。
映射,可以将一个流的元素按照一定的映射规则映射到另一个流中。分为map和flatMap:
4.映射(map/flatMap)
归约,也称缩减,顾名思义,是把一个流缩减成一个值,能实现对集合求和、求乘积和求最值操作
5.归约(reduce)
collect,收集,可以说是内容最繁多、功能最丰富的部分了。从字面上去理解,就是把一个流收集起来,最终可以是收集成一个值也可以收集成一个新的集合
collect主要依赖java.util.stream.Collectors类内置的静态方法
解释
因为流不存储数据,那么在流中的数据完成处理后,需要将流中的数据重新归集到新的集合里。toList、toSet和toMap比较常用,另外还有toCollection、toConcurrentMap等复杂一些的用法
1.归集(toList/toSet/toMap)
计数:count
平均值:averagingInt、averagingLong、averagingDouble
最值:maxBy、minBy
求和:summingInt、summingLong、summingDouble
统计以上所有:summarizingInt、summarizingLong、summarizingDouble
Collectors提供了一系列用于数据统计的静态方法
2.统计(count/averaging)
分区:将stream按条件分为两个Map,比如员工按薪资是否高于8000分为两部分。
分组:将集合分为多个Map,比如员工按性别分组。有单级分组和多级分组。
3.分组(partitioningBy/groupingBy)
joining可以将stream中的元素用特定的连接符(没有的话,则直接连接)连接成一个字符串。
4.接合(joining)
Collectors类提供的reducing方法,相比于stream本身的reduce方法,增加了对自定义归约的支持
5.归约(reducing)
6.收集(collect)
sorted():自然排序,流中元素需实现Comparable接口
sorted(Comparator com):Comparator排序器自定义排序
7.排序(sorted)
流也可以进行合并、去重、限制、跳过等操作。
String[] arr1 = { \"a\
使用
Stream的使用
Stream源码解读
Stream
Java基础
0 条评论
回复 删除
下一页