Java8中Stream的一些神操作
作者:daisy 发布时间:2021-11-18 19:07:21
标签:java8,stream,集合
Java8对集合提供了一种流式计算的方式,这种风格将要处理的元素集合看 作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如 筛选, 排序,聚合等。
Stream API 基本都是返回Stream本身,这样多个操作可以串联成一个管 道, 如同流式风格(fluent style)。 这样做可以对操作进行优化, 比 如延迟执行(laziness)和短路( short-circuiting)
stream() 为集合创建串行流
parallelStream() 为集合创建并行流
private void createStream(){
Stream<Integer> stream = getList().stream();
Stream<Integer> parallelStream = getList().parallelStream();
}
stream提供了一个内部遍历的方式forEach(),通过forEach可以大大简化集 合遍历的代码。
private void forEach(){
getList().forEach(i->System.out.println(i));
}
stream提供了一个用于数据过滤的方法filter(),与stream的其他API配合 使用可以简单的实现数据过滤。
stream提供了一个用于数据映射的方法map(),与stream的其他API配合使用 可以简单的实现数据映射。
stream提供了一个用于数据映射的方法sorted(),与stream的其他API配合 使用可以简单的实现数据排序。
Collectors 类实现了很多归约操作,例如将流转换成集合和聚合元素。 Collectors 可用于返回列表或字符串。
一些产生统计结果的收集器也非常有用。它们主要用于int、double、long 等基本类型上,它们可以用来产生类似如下的统计结果。
来源:https://juejin.cn/post/7025202317599178760


猜你喜欢
- 为什么需要互斥量在多任务操作系统中,同时运行的多个任务可能都需要使用同一种资源。这个过程有点类似于,公司部门里,我在使用着打印机打印东西的同
- 1. 新建项目引入web和security包完整的pom.xml文件如下<?xml version="1.0" e
- 相信大家都经常使用String 的split方法,但是大家有没有遇到下面的这种情况:大家想想下面的代码执行结果是什么public stati
- 本文实例讲述了Java基于链表实现栈的方法。分享给大家供大家参考,具体如下:在上几小节中我们实现了基本的链表结构,并在上一节的底部给出了有关
- 1.组装查询条件组装查询其实很简单,可以支持条件的链式编程:查询用户名包含a,年龄在 10 - 20 之间并且邮箱不为空的用户:@Testv
- CollapsingToolbarLayout作用是提供了一个可以折叠的Toolbar,它继承至FrameLayout,给它设置layout
- 1.launch启动协程fun main() = runBlocking { launch { &
- 环境介绍 IDEA我用的是2020.2Gradle 安装参考 Gradle安装配置我这安装的是6.6.1C:\Users\herion>
- 前言其实Task跟线程池ThreadPool的功能类似,不过写起来更为简单,直观。代码更简洁了,使用Task来进行操作。可以跟线程一样可以轻
- 背景最近对于 Java 多线程做了一段时间的学习,笔者一直认为,学习东西就是要应用到实际的业务需求中的。否则要么无法深入理解,要么硬生生地套
- 什么是冒泡排序冒泡排序指重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从小到大)错误就把他们交换过来。走访元素的工作是重复
- 本文实例为大家分享了SpringMVC实现文件上传和下载的具体代码,供大家参考,具体内容如下文件上传第一步,加入jar包:commons-f
- 这个例子很简单,直接上截图和代码。布局文件activity_copy.xml代码如下:<?xml version="1.0&
- Android中很多产品(比如360手机助手、网易菜单...)都采用侧滑菜单的展现形式,采用这种展现形式1、能把更多的展现内容都存放在菜单中
- 自定义注解+springAop参数非空校验自定义注解,来对对应的方法进行入参校验,为空返回参数错误新建注解类@interface Param
- FTP(File Transfer Protocol)就是文件传输协议。通过FTP客户端从远程FTP服务器上拷贝文件到本地计算机称为下载,将
- 泛型约束的意思就是说:类的泛型,只能是where字句后面所写的接口或类。这么说好像也有点不大明白,举个例子。我有一个接口,如下:
- 本文实例讲述了java实现切割wav音频文件的方法。分享给大家供大家参考,具体如下:import it.sauronsoftware.jav
- 软引用简介软引用是用来表示某个引用会被GC(垃圾处理器)收集的类。当有引用指向某个obj的时候,通常发生GC的时候不会把这个对象处理掉,但是
- 前言OkHttp是目前非常火的网络库,支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接,连接池减少请求延时,透明的G