当前位置: 移动技术网 > IT编程>开发语言>Java > 关于java8 中的steam一些东西(学习笔记)

关于java8 中的steam一些东西(学习笔记)

2020年10月25日  | 移动技术网IT编程  | 我要评论
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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网