版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模块六集合与泛型Stream流任务四学习目标熟悉Stream流的使用,能够使用Stream流对集合进行各种操作
先定一个小目标!Stream流Stream流又称StreamAPI,是JDK8开始提供的用于处理数据的API,它将待处理的数据视为流,在管道中传输。使用Stream流可以轻松地对数组和集合进行操作,简化集合和数组的遍历、筛选、过滤等操作。此外,Stream流的操作会产生结果,但不会修改数据源,这使得数据的处理更加安全可靠。Stream流使用Stream流处理集合一般需要经过三个步骤,分别是获取Stream流、使用中间方法对流进行处理、使用终结方法获取处理结果。下面对这三个步骤进行说明。Stream流1.获取Stream流获取Stream流指的是从数据源中获取Stream流的引用,让开发者能够对数据源进行流式处理。在Java中,对于所有的单列集合,Collection集合提供了一个stream()方法,用于获取对应集合的Stream流对象。对于Java中的双列集合,无法直接使用Stream流进行处理。但是可以通过keySet()方法或entrySet()方法将双列集合转为单列集合,然后调用stream()方法获取Stream流。Stream流2.Stream流的中间方法获取到集合的Stream流后,就可以对流中的数据进行操作了。Stream流提供了一系列方法,用于对数据流进行过滤、排序、去重等中间操作,这些方法被称为中间方法。中间方法是对Stream流中的元素执行处理操作的方法,不会立即返回最终的结果流,它们在终结方法被调用时才会执行。Stream流2.Stream流的中间方法Stream流常用的中间方法如下表所示。方法声明功能描述Stream<T>filter(Predicate<T>predicate)根据指定条件过滤流中的数据Stream<T>sorted()对流中元素进行升序排列Stream<T>sorted(Comparator<?superT>comparator)对流中元素按照指定规则进行排序Stream<T>limit(longmaxSize)截取流中前maxSize个元素Stream<T>skip(longn)跳过流中前n个元素,返回后面的元素Stream<T>distinct()去除流中重复的元素<R>Stream<R>map(Function<?superT,?extendsR>mapper)根据指定的映射函数对流中的数据进行转换,返回一个新的流static<T>Stream<T>concat(Streama,Streamb)合并a和b两个流为一个流Stream流2.Stream流的中间方法Stream流的每个中间方法都会返回一个新的
Stream流,这样中间方法可以连续调用,形成操作链,对数据进行连续处理,也就是说,在一行代码中可以连续调用多个中间方法,以便一次性处理多个需求。Stream流3.Stream流的终结方法终结方法用于消费流中的元素并产生最终的结果。终结方法执行完成后流会被关闭,无法再对流进行操作,并返回一个非流的结果。Stream流3.Stream流的终结方法Stream流常用的终结方法如下表所示。方法声明功能描述voidforEach(Consumeraction)对流中间方法运算后的元素进行遍历ObjecttoArray()将流中的元素收集到数组中并返回该数组collect(Collectorcollector)将流中的元素收集到集合中并返回该集合longcount()获取流中间方法运算后元素的总个数Optional<T>max(Comparator<?superT>comparator)根据指定规则返回流中最大的元素Optional<T>min(Comparator<?superT>comparator)根据指定规则返回流中最小的元素Stream流案例演示下面通过一个案例演示Stream流的使用。Example17.java源代码Stream流案例演示案例的运行结果如下图所示。项目实践:会议室预定系统案例描述在社会的各企事业单位内部,经常需要举行各种会议。由于会议室资源有限,为了更好地利用会议室资源,提高会议效率,通常使用会议室之前需要对会议室进行预订。本项目要求开发一个会议室预订系统,使用户能够通过该系统预订某个会议室的特定时间段。会议室预定系统的具体功能如下。(1)查看所有会议室。本项目要求初始化5个会议室,每个会议室包含名称、容纳量以及是否配备多媒体设备三个信息。会议室名称是唯一的,每个会议室的名称由楼号(A、B、C)和房间号(例:501)组成。查看所有会议室时,展示所有会议室的信息。项目实践:会议室预定系统案例描述(2)预订会议室。用户可以预订尚未被预订的会议室,预订时需要输入预订的会议日期和会议时间段,预订成功后系统会给出提示信息。(3)查看预订信息。用户可以查看所有的会议室的预订信息,包括每个会议室在不同时间段的具体预订情况,方便用户了解每个会议室的可用性。(4)查看指定时间段可用会议室。用户可以输入指定的日期和时间段,来查看该时间段内可用(未被预订)的会议室,方便用户快速找到符合需求的会议室。项目实践:会议室预定系统案例效果项目实践:会议室预定系统案例效果任务小结本章主要对Java中常用集合类和泛型的相关知识进行了讲解。首先讲解了集合的基础知识以及Collect
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026福建莆田城厢法院招聘3人备考题库及答案详解(名校卷)
- 2026年3月山东济南轨道交通集团运营有限公司社会招聘备考题库及参考答案详解(研优卷)
- 2026北京大学艺术学院招聘劳动合同制人员1人备考题库及答案详解【名师系列】
- 2026新疆兵团第一师八团医院招聘3人备考题库及答案详解参考
- 2026内蒙古地质矿产集团有限公司竞争性比选财务管理部部长1人备考题库(精练)附答案详解
- 2026浙江康复医疗中心银龄医师招聘备考题库附完整答案详解(夺冠系列)
- 2026广东中山南头镇北帝社区招聘合同制工作人员1人备考题库及完整答案详解(典优)
- 2026年3月山东济南轨道交通集团运营有限公司社会招聘备考题库及答案详解【网校专用】
- 2026湖南长沙市芙蓉区招聘中学骨干教师10人备考题库完整版附答案详解
- 2026广东深圳市优才人力资源有限公司公开招聘聘员(派遣至龙城街道)18人备考题库含答案详解(满分必刷)
- 2026年河南交通职业技术学院单招职业技能测试必刷测试卷附答案
- 2025年中国石化生产安全风险分级管控和名称隐患排查治理双重预防机制管理规定
- 固体化学考研真题及答案
- DB11∕T 487-2022 保安服务规范 住宅物业
- DB45∕T 2556-2022 建设用地土壤污染风险筛选值和管制值
- 2026年南京交通职业技术学院单招职业适应性考试题库及答案解析(夺冠系列)
- 医学影像模拟教学的效果评估体系
- 体外受精-胚胎移植(IVF-ET)全流程管理与质量控制实践指南
- 玻璃外墙清洗合同范本
- 2025中远海运发展股份有限公司招聘1人笔试历年难易错考点试卷带答案解析试卷3套
- 缩宫素点滴引产术课件
评论
0/150
提交评论