首页 > 编程语言 >java8之引入流

java8之引入流

时间:2023-10-26 12:03:44浏览次数:34  
标签:返回 迭代 元素 中间 终端 引入 操作 java8


1.filter(筛选):接受Lanbda,从流中排出某些元素


2.map(提取):接受一个Lanbda,将元素转换成其他形式或提取信息


3.limit(截断):截断流,使其元素不超过给定数量


4.distinct:筛选掉重复的元素


4.collect:将流转换为其他形式


注:流只能消费一次


5.使用Collection接口需要用户去做迭代(比如用for-each),这称为外部迭代。 相反, Streams库使用内部迭代


6.Streams库的内部迭代可以自动选择一种适 合你硬件的数据表示和并行实现


7.可以连接起来的流操作称为中间操作,关闭流的操作称为终端操作


8.使用流


流的使用一般包括三件事:


 一个数据源(如集合)来执行一个查询;


 一个中间操作链,形成一条流的流水线;


 一个终端操作,执行流水线,并能生成结果。



中间操作


操作

类型

返回类型

操作参数

函数描述符

filter

中间

Stream<T>

Predicagte<T>

T->boolean

map

中间

Stream<R>

Function<T,R>

T->R

limit

中间

Stream<T>

sorted

中间

Stream<T>

Comparator<T>

(T,T)->int

distinct

中间

Stream<T>


终端操作


操作

类型

目的

forEach

终端

消费流中的每个元素并对其应用 Lambda。这一操作返回 void

count

终端

返回流元素的个数。这一操作返回long

collect

终端

把流归约成一个集合,比如List、Map甚至是Integer


标签:返回,迭代,元素,中间,终端,引入,操作,java8
From: https://blog.51cto.com/u_15834920/8032009

相关文章

  • 手把手教你在项目中引入Excel报表组件
    摘要:本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前言GrapeCityDocumentsforExcel(以下简称GcExcel)是葡萄城公司的一款支持批量创建、编辑、打印、导入/导出Excel文件的服务端表格组件,能够高性......
  • Telegram 正式引入国产小程序技术
    Telegram宣布为其开发者提供了一项“能够在App中运行迷你应用”的新功能(迷你应用即MiniApp,下文中以“小程序”代替)。 在一篇博客文章中,Telegram的开发者写到“小程序提供了可替代互联网网站的灵活界面(create infinitelyflexibleinterfaces thatcanbelaunchedrig......
  • uniapp引入H5调试vConsole
    在真机环境下调试移动端H5的时候,无法像浏览器一样打开控制台进行console调试,那么我们可以在前端项目中引入vconsole,便于我们在真机环境下调试移动端H5项目vConsole是一个轻量、可拓展、针对手机网页的前端开发者调试面板。详细文档可查看:https://gitee.com/mirrors/vConsole/功......
  • uniapp项目引入uView-ui
    通过npm下载//如果您的根目录没有package.json文件的话,请先执行如下命令://npminit-ynpminstalluview-ui//更新//npmupdateuview-ui配置步骤1.引入uView主JS库在项目根目录中的main.js中,引入并使用uView的JS库,注意这两行要放在importVue之后。//main.j......
  • FreeRTOS深入教程(任务的引入及栈的作用)
    (文章目录)前言本篇文章开始带大家深入学习FreeRTOS,带大家学习什么是任务,并且深入学习栈的作用。一、任务的引入在FreeRTOS中,任务(Task)是一个基本的执行单元,它代表了一个并行执行的工作单元。FreeRTOS是一个实时操作系统,允许你创建多个任务,每个任务都有自己的代码、堆栈和优......
  • java8 map过滤 map转字符串
    Map<String,Long>map=newHashMap<>();map.put("aaa",1L);map.put("bbb",2L);map.put("ccc",1L);Map<String,Long>map2=map.entrySet().stream().filter(e->e.getValue().intValue()>1).collect(Coll......
  • 如何在 Vue.js 中引入原子设计?
    本文为翻译文章,原文链接:https://medium.com/@9haroon_dev/introducing-atomic-design-in-vue-js-a9e873637a3e前言原子设计是一种创建设计系统的方法,它将用户界面分解为可重用的小组件,即:Atoms原子Molecules分子Organisms生物体Templates模板Pages页面通过遵循模......
  • 阴影,圆角边框,字体引入
    文本阴影盒子阴影圆角边框半圆扇形 字体引入 ......
  • Vue.js框架:vue3版本引入使用element-ui
    一、引入element-pluselement-ui只支持vue2,vue3需要引入element-plus进行使用,两个分别对应vue2和3两个版本,各自独立,无法跨级兼容。地址:https://element-plus.gitee.io/在vue3项目终端里使用以下命令引入该依赖:npminstallelement-plus--save二、修......
  • Java 项目引入logback
    参考文档:https://www.cnblogs.com/songxingzhu/p/10119378.html <!--BeginLogBackLog--><!--https://mvnrepository.com/artifact/ch.qos.logback/logback-classic--><dependency><groupId>ch.qos.logback</g......