// 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新特性关于流操作部分的更多相关文章

  1. Java8 新特性之集合操作Stream

    Java8 新特性之集合操作Stream Stream简介 Java 8引入了全新的Stream API.这里的Stream和I/O流不同,它更像具有Iterable的集合类,但行为和集合类又有所不同 ...

  2. 功能:Java8新特性steam流

    Java8新特性steam流 一.包装数据类型 @Test public void main22() { List<Integer> list = new ArrayList<Int ...

  3. Java(45)JDK新特性之String流

    作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15201671.html 博客主页:https://www.cnblogs.com/testero ...

  4. 这可能是史上最好的 Java8 新特性 Stream 流教程

    本文翻译自 https://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples/ 作者: @Winterbe 欢迎关注个人微信公众 ...

  5. Java8 新特性之流式数据处理

    一. 流式处理简介 在我接触到java8流式处理的时候,我的第一感觉是流式处理让集合操作变得简洁了许多,通常我们需要多行代码才能完成的操作,借助于流式处理可以在一行中实现.比如我们希望对一个包含整数的 ...

  6. Java8 新特性之流式数据处理(转)

    转自:https://www.cnblogs.com/shenlanzhizun/p/6027042.html 一. 流式处理简介 在我接触到java8流式处理的时候,我的第一感觉是流式处理让集合操作 ...

  7. Java1.8新特性 - Stream流式算法

    一. 流式处理简介   在我接触到java8流式数据处理的时候,我的第一感觉是流式处理让集合操作变得简洁了许多,通常我们需要多行代码才能完成的操作,借助于流式处理可以在一行中实现.比如我们希望对一个包 ...

  8. 再来看看Java的新特性——Stream流

    半年前开始试着使用Java的新特性,给我印象最深的就是Stream流和Optional.其中Stream提高了看法效率,让代码看起来十分清爽. 为什么要使用流? 摘要中已经说明了,为了提高开发效率.流 ...

  9. JDK新特性——Stream代码简洁之道的详细用法

    一.概述 Stream 是一组用来处理数组.集合的API,Stream API 提供了一种高效且易于使用的处理数据的方式. Java 8 中之所以费这么大的功夫引入 函数式编程 ,原因有两个: 代码简 ...

随机推荐

  1. iOS本地数据存储

    http://www.jianshu.com/p/a3eeae99e902 大牛整理的超全

  2. go实践之swagger自动生成api文档

    文章目录 go实践之swagger自动生成api文档 1.安装需要用到的包 2.接口代码支持swagger 3. 生成swagger接口 go实践之swagger自动生成api文档 作为一个后端开发, ...

  3. [TimLinux] TCP全连接队列满

    0. TCP三次握手 该图来自:TCP SOCKET中backlog参数的用途是什么? syns queue: 半连接队列 accept queue: 全连接队列 控制参数存放在文件:/proc/sy ...

  4. Geoserver2.15.1 配置自带 GeoWebCache 插件发布 ArcGIS Server 瓦片(附配置好的 Geoserver2.15.1 下载)

    之前写过一篇关于 Geoserver2.8.5 版本的部署配置发布 ArcGIS Server 瓦片点击查看,那是下载 Geoserver2.8.5 源码编译,重新打包 jar 来部署配置思路的,版本 ...

  5. 【广州.NET社区推荐】【译】Visual Studio 2019 中 WPF & UWP 的 XAML 开发工具新特性

    原文 | Dmitry 翻译 | 郑子铭 自Visual Studio 2019推出以来,我们为使用WPF或UWP桌面应用程序的XAML开发人员发布了许多新功能.在本周的 Visual Studio ...

  6. 使用g++编译器扩大程序可用栈空间

    如题,在写一些程序的时候我们有时会开一个比较大的数组或进行层数较多的dfs.这时候,程序常常会报错,于是就很无奈. 其实,虽然Windows给程序的默认栈空间比较小,我们还是有办法去扩大这个程序运行栈 ...

  7. Vue中兄弟组件间传值-(Bus/总线/发布订阅模式/观察者)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. v-if和v-show 的区别

    区别 1.手段:v-if是通过控制dom节点的存在与否来控制元素的显隐:v-show是通过设置DOM元素的display样式,block为显示,none为隐藏: 2.编译过程:v-if切换有一个局部编 ...

  9. liunx新装tomcat之后,tomcat不能识别新发布的项目

    遇到的问题 在liunx新装tomcat之后,发布之前的项目,发现在tomcat不能识别新发布的项目,打成war包,还是直接把项目拷贝过去都不行. 环境:虚拟机:VMware 主机系统:win10 虚 ...

  10. django基础之有名分组和无名分组

    在Django 2.0版本之前,在urls,py文件中,用url设定视图函数 urlpatterns = [ url(r'login/',views.login), ] 其中第一个参数是正则匹配,如下 ...