JDK新特性关于流操作部分
// array 工具类 可以用来快捷的将数组转化为list
List<String> strings = Arrays.asList("zhongguo", "riben", "yingguo");
// 转化为一个新的list
List<String> collect = strings.stream().map(number -> number += "dfvgcdvcx").collect(Collectors.toList());
// 流输出
collect.forEach(num -> System.out.println( num));
// 帅选偶数
List<Integer> numberList = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
List<Integer> collect1 = numberList.stream().filter(num -> num % 2 == 0).collect(Collectors.toList());
collect1.forEach(number -> System.out.println(number));
// 从无线流数据中选择第一个
List<Integer> numberList1= Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
Optional<Integer> first = numberList1.stream().findFirst();
// 输出第一个
System.out.println(first.orElse(-1));
// 获取或者扔掉前 n 个元素
List<Integer> ageList = Arrays.asList(11, 22, 13, 14, 25, 26);
Stream<Integer> limit = ageList.stream().limit(4);
limit.forEach(li -> System.out.println(li));
Stream<Integer> skip = ageList.stream().skip(4);
skip.forEach(sk-> System.out.println(sk));
// 数学统计功能
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6);
IntSummaryStatistics intSummaryStatistics = list.stream().mapToInt(x -> x).summaryStatistics();
System.out.println(intSummaryStatistics.getMax());
System.out.println(intSummaryStatistics.getMin());
System.out.println(intSummaryStatistics.getAverage());
System.out.println(intSummaryStatistics.getCount());
System.out.println(intSummaryStatistics.getSum());
// 分组聚合功能
List<Integer> groupList = Arrays.asList(11, 22, 13, 14, 25, 26);
Map<Integer, List<Integer>> collect2 = groupList.stream().collect(Collectors.groupingBy(age -> age / 10));
collect2.forEach((k,v) -> System.out.println(k+"nmnmn"+v));
// 按某个条件分组 会得到一个key 为布尔的map
List<Integer> patationList = Arrays.asList(11, 22, 13, 14, 25, 26);
Map<Boolean, List<Integer>> collect3 = patationList.stream()
.collect(Collectors.partitioningBy(age -> age > 18));
// 生成自己的 Stream 流
Random random = new Random();
Stream<Integer> generate = Stream.generate(random::nextInt);
generate.forEach(num -> System.out.println(num));
// 生成自己的 UUID 流
Stream<UUID> generate1 = Stream.generate(UUID::randomUUID);
generate1.limit(5).forEach(System.out::println);
JDK新特性关于流操作部分
JDK新特性关于流操作部分的更多相关文章
- Java8 新特性之集合操作Stream
Java8 新特性之集合操作Stream Stream简介 Java 8引入了全新的Stream API.这里的Stream和I/O流不同,它更像具有Iterable的集合类,但行为和集合类又有所不同 ...
- 功能:Java8新特性steam流
Java8新特性steam流 一.包装数据类型 @Test public void main22() { List<Integer> list = new ArrayList<Int ...
- Java(45)JDK新特性之String流
作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15201671.html 博客主页:https://www.cnblogs.com/testero ...
- 这可能是史上最好的 Java8 新特性 Stream 流教程
本文翻译自 https://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples/ 作者: @Winterbe 欢迎关注个人微信公众 ...
- Java8 新特性之流式数据处理
一. 流式处理简介 在我接触到java8流式处理的时候,我的第一感觉是流式处理让集合操作变得简洁了许多,通常我们需要多行代码才能完成的操作,借助于流式处理可以在一行中实现.比如我们希望对一个包含整数的 ...
- Java8 新特性之流式数据处理(转)
转自:https://www.cnblogs.com/shenlanzhizun/p/6027042.html 一. 流式处理简介 在我接触到java8流式处理的时候,我的第一感觉是流式处理让集合操作 ...
- Java1.8新特性 - Stream流式算法
一. 流式处理简介 在我接触到java8流式数据处理的时候,我的第一感觉是流式处理让集合操作变得简洁了许多,通常我们需要多行代码才能完成的操作,借助于流式处理可以在一行中实现.比如我们希望对一个包 ...
- 再来看看Java的新特性——Stream流
半年前开始试着使用Java的新特性,给我印象最深的就是Stream流和Optional.其中Stream提高了看法效率,让代码看起来十分清爽. 为什么要使用流? 摘要中已经说明了,为了提高开发效率.流 ...
- JDK新特性——Stream代码简洁之道的详细用法
一.概述 Stream 是一组用来处理数组.集合的API,Stream API 提供了一种高效且易于使用的处理数据的方式. Java 8 中之所以费这么大的功夫引入 函数式编程 ,原因有两个: 代码简 ...
随机推荐
- Python装饰器总结,带你几步跨越此坑!
欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...
- Python之HTTP静态Web服务器开发
众所周知,Http协议是基于Tcp协议的基础上产生的浏览器到服务器的通信协议 ,其根本原理也是通过socket进行通信. 使用HTTP协议通信,需要注意其返回的响应报文格式不能有任何问题. 响应报文, ...
- js-Date()对象,get/setFullYear(),getDay()编程练习
啥也不说!看代码 主要注意:getday()方法中原理!!! <!DOCTYPE html> <html lang="en"> <head> & ...
- luogu P3152 正整数序列
题目描述 kkk制造了一个序列,这个序列里的数全是由正整数构成的.你别认为她的数列很神奇--其实就是1, 2, -, n而已.当然,n是给定的.kkk的同学lzn认为0是一个好数字(看上去很饱满有木有 ...
- 创建自己的github仓库
作者: wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/20067595 一.创建自己的github仓库 CocoaPods都托 ...
- Redux和Context对比
Redux和Context对比 如果项目体量较小,只是需要一个公共的store存储state,而不讲究使用action来管理state,那context完全可以胜任.反之,则是redux的优点. co ...
- 第八章 使用jQuery操作DOM
DOM操作: jQuery中提供了一系列操作DOM强有力的方法,它们不仅简化了传统JavaScript操作DOM时繁冗的代码,更加解决了令开发者苦不堪言的跨平台浏览器的兼容. 它还让有页面元素真正动起 ...
- [TimLinux] Python如何运行程序
1. Python解释器安装 访问官方网站:https://www.python.org/, 在首页标签中找到“Downloads”,根据不同的操作系统,选择相应的下载源文件即可. 2. 源码安装 在 ...
- 洛谷 题解 P1736 【创意吃鱼法】
题目大意 给出一个 \(n \times m \ (1 \leq n, \ m \leq 2500)\) 的 \(01\) 矩阵,让你在其中找到一个最大的子矩阵使得该子矩阵除了一条对角线上的数字均为 ...
- Python入门(一个有趣的画图例子实战)你肯定不会
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:qiu_fang 画一条可爱的python(蟒蛇): import t ...