关于java8 中的steam一些东西
程序员文章站
2022-07-10 18:31:47
Stream属于java1.8的特性之一,在代码中使用可以使代码更加美观。下面是之前总结的部分功能。Stream的操作符总体来讲分为两种: 中间操作符和终止操作符中间操作符中间操作符在执行制定处理程序后,数据流依然可以传递给下一级的操作符.中间操作符包含8种(排除了parallel,sequential,这两个操作并不涉及到对数据流的加工操作):方法名作用map,mapToInt,mapToLong,mapToDouble把比如A->B,这里默认提供了转int,lo...
Stream属于java1.8的特性之一,在代码中使用可以使代码更加美观。下面是之前总结的部分功能。
Stream的操作符总体来讲分为两种: 中间操作符和终止操作符
中间操作符
中间操作符在执行制定处理程序后,数据流依然可以传递给下一级的操作符.中间操作符包含8种(排除了parallel,sequential,这两个操作并不涉及到对数据流的加工操作):
方法名 | 作用 |
---|---|
map,mapToInt,mapToLong,mapToDouble | 把比如A->B,这里默认提供了转int,long,double的操作符 |
flatmap,flatmapToInt,flatmapToLong,flatmapToDouble | 把int[]{2,3,4} 拍平变成 2,3,4 .也就是从原来的一个数据变成了3个数据,这里默认提供了拍平成int,long,double的操作符 |
limit | 限流.限制输出的数量.比如数据流中有10个 我只要出前3个 |
distinct | 去重,去除重复的元素.底层使用的equals |
filter | 过滤操作 |
peek | 选出操作,选出元素进行操作处理,读取获取,编辑等 |
skip | 跳过操作,跳过某些元素 |
sorted | 排序操作,对元素进行排序 |
终止操作符
终止操作符就是用来对数据进行收集或者消费的,数据到了终止操作这里就不会向下流动了,终止操作符只能使用一次
方法名 | 作用 |
---|---|
collect | 收集操作, 官方的提供的Collectors 提供了非常多收集器,可以说Stream 的核心在于Collectors |
count | 统计,统计最终的数据个数 |
findFirst,findAny | 查找操作, 查找第一个,查找任意一个,返回一个Optional类型 |
noneMatch,allMatch,anyMatch | 匹配操作,数据流中是否存在符合条件的元素,返回Boolean值 |
min,max | 返回数据流中最大最小的值 |
reduce | 规约操作, 将整个数据流的值规约为一个值 |
forEach,forEachOrderd | 遍历操作 |
toArray | 转换成数组 |
map
public static void main(String[] args) {
Stream.of("abc","cbd","dds").map(String::length).forEach(System.out::println);
System.out.println("----------------");
Stream.of("abc","cbd","dds").map(e ->e.replace("b","\\")).forEach(System.out::println);
System.out.println("----------------");
Stream.of("abc","cbd","dds").mapToDouble(String::length).forEach(System.out::println);
System.out.println("----------------");
Stream.of("a-b-c", "cb-d", "d-ds").flatMap(e -> Stream.of(e.split("-"))).forEach(System.out::println);
}
输出:
3
3
3
----------------
a\c
c\d
dds
----------------
3.0
3.0
3.0
----------------
a
b
c
cb
d
d
ds
filter,distinct,sorted
Stream.of(4,3,5,7,8,3,7,9,2,6,9).distinct().filter(e ->e >= 5).sorted().forEach(System.out::println);
5
6
7
8
9
reduce
int sum = Stream.of(21,-22,3,5).reduce(0,(e1,e2)->e1+e2);
System.out.println(sum);
------------------
输出7
本文地址:https://blog.csdn.net/weixin_44168259/article/details/109279252
上一篇: java利用Socket实现客户端发送算式(无空格),服务端返回结果
下一篇: ssm框架整合演示