java中Strem流终止操作
Stream的中止操作
前提
public static List<Emploeer> getEmploer(){List<Emploeer> list = new ArrayList<>();list.add(new Emploeer(1,"张三",18,5000));list.add(new Emploeer(2,"李四",20,5000));list.add(new Emploeer(3,"王五",31,5000));list.add(new Emploeer(4,"赵六",20,5000));list.add(new Emploeer(5,"田七",19,5000));return list;}
reduce规约
定义
根据某种同一的规则将数据进行合并(规则由自己定义)
如何使用(3种)
reduce(BinaryOperator<T> accumulator)
Optional<Integer> op = list.stream().map(s->s.getId()).distinct().reduce((a,b)->{System.out.println(a+"----->"+b);return a+b;});
定义了种规则将所有数据的值相加得到数据,所以上述代码结果为15。
此方法只有规则一个参数。
操作过程为将第一个数据和第二个数据作为第一次的参数,得到相加的结果作为第二次操作的第一个参数,第三个数据作为第二个参数。
注意此方法要用Optonal容器接,此容器只能存一个数据,专门为防止空指针存在
reduce(T identity, BinaryOperator<T> accumulator)
Integer a = list.stream().map(s->s.getId()).distinct().sorted().reduce(1000,(c,d)->{System.out.println(c+"----->"+d);return c+d;});
此方法有两个参数,一个为1000 一个为规则。
其结果为1015,即第一个数据加上1000在执行正常操作
reduce(U identity, BiFunction<U,? super T,U> accumulator, BinaryOperator<U> combiner)
Integer c= list.parallelStream().map(s->s.getId()).distinct().sorted().reduce(1000,(e,f)->{System.out.println(e+"--->"+f);return e+f;},(x,y)->{System.out.println(x+"----->"+y);return x+y;});
此方法必须为并行流,每个数据都加上1000在彼此进行规则的操作。
collect
这也是流的一个操作,对流进行各种操作
collect(Collector)
里面的参数可以用Collectors收集工具类,此类提供了一系列的静态方法
- tolist
List<Emploeer> list = emploeers.stream().filter(s->s.getAge()>19).collect(Collectors.toList());
将一个流变为一个list集合
- toset
Set<Emploeer> set = emploeers.stream().filter(s->s.getAge()>19).collect(Collectors.toSet());
将一个流变为一个set集合
- tomap
Map<Integer,Integer> map = emploeers.stream().filter(s->s.getAge()>18).collect(Collectors.toMap(Emploeer::getId,Emploeer::getAge));
将一个流转为map集合注意这里要给键值对的值
java中Strem流终止操作相关推荐
- Java中Steam流的用法及使用备忘
文章目录 Java中Steam流的用法及使用备忘 一. 流的常用创建方法 1-1 使用Collection下的 stream() 和 parallelStream() 方法 1-2 使用Arrays ...
- java中字符流 字节流_理解Java中字符流与字节流的区别
1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个"流动的方向",通常可 ...
- Java 8 - Stream流骚操作解读2_归约操作
文章目录 Pre 什么是归约操作 元素求和 reduce reduce如何运行的 最大值和最小值 Pre Java 8 - Stream流骚操作解读见到过的终端操作都是返回一个 boolean ( a ...
- Java中IO流的总结
有关Java中IO流总结图 流分类 按方向分 输入流 输出流 按单位分 字节流 字符流 按功能分 节点流 处理流(过滤流) 其他 所有的流继承与这四类流:InputSteam.OutputStream ...
- java中各种流的详细使用
http://hunulei.blogbus.com/logs/2005/07/1296309.html http://java.sun.com/docs/books/tutorial/essenti ...
- java 中的流_Java中的流(IO
Java中的流(IO流. java.io包中定义了多个流类型(类或抽象类)来实现 输入 / 输出功能,可以从不同的角度对其进行分类: 按单位可分为: 字节流 (一个字节一个字节的读取) ...
- java中IO流详解
不断更新中!!! 1.流的定义及分类 流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输操作都是以"流"的方式进行.设备可以是文件,网络,内存等.将数据从 ...
- Java中IO流体系
转载: https://mp.weixin.qq.com/s?__biz=MzA5NzgzODI5NA==&mid=2454030958&idx=1&sn=df27aadb92 ...
- Java中IO流的分类和BIO,NIO,AIO的区别
到底什么是IO 我们常说的IO,指的是文件的输入和输出,但是在操作系统层面是如何定义IO的呢?到底什么样的过程可以叫做是一次IO呢? 拿一次磁盘文件读取为例,我们要读取的文件是存储在磁盘上的,我们的目 ...
最新文章
- 同样是搞Java,年薪15W和50W的到底差在哪里?
- 使用VScode开发ESP8266,PlatformIO开发ESP8266
- nsswitch.conf文件详解
- 如何将网站升级为HTTPS协议?
- 如何实施异构服务器的负载均衡及过载保护?
- tensorflow1中如何设置GPU的使用
- 冒泡排序的多种写法、逻辑
- 我最印象深刻的编程错误经历
- SAP Spartacus organization unit list抬头显示所有unit的标题实现
- SAP物料主数据创建时间的线性增长
- 程序员,当你写程序写累了怎么办。
- SVN cleanup 反复失败解决办法
- dell网卡linux驱动,DELL R710 服务器 Linux 系统网卡驱动安装
- Installation error: INSTALL_FAILED_NO_MATCHING_ABIS
- 微信服务号/企业号防止AccessToken过期的操作指南深入浅出
- 运算放大器权威指南(Op Amps for Everyone)
- Navicat提示Access violation at address 004E9844 in module ‘navicat.exe’
- Android 垂直与水平滚动条:Scrollview与HorizontalScrollView
- 安装pytorch报错torch.cuda.is_available()=false的解决方法
- 数据结构C++实现(顺序栈) 青岛大学王卓老师
热门文章
- Python心经(4)
- 微信小程序开发日记 (4) 样式设计
- 虹软人脸识别3.0 - 图像数据结构介绍(C++)
- Vue3 vscode开发新extension:使用 volar 代替 vetur
- mysql语法——基于palo数据库
- 初二计算机简单动画,浙教版八年级下册信息技术:第七课《简单的动画补间动画》教案...
- 如何才能写出优质的代码?
- 解决上海移动企信通的empp.dll的Com组件的问题
- 零束科技获得中国信通院“2022 XOps产业生态峰会优秀案例”奖
- 企业信使(企信通)辅助系统V1.1上线