java:stream流

 1、 stream是什么?有什么作用?结合了什么技术?

答:简化集合、数组操作的API,结合了lambda表达式。

2、说说stream流处理数据的步骤是什么?

先得到集合或者数组的stream流。

然后调用stream流的方法对数据进行处理。

获取处理的结果。

获取stream流

1、List集合获得stream流

COllection<String> list =new ArrayList<>();
stream <String> s= list.stream();

2、Map集合获得Stream流

Map<String,Integer> map=new HashMap<>();
Stream<string>s2= map.keyset().stream();
Stream<string>s3= map.values().stream();
Stream<Map.Entry<String,Integer>>s4=map.entrySet().stream();

3、数组获得Stream流

Stream<String>s5=Stream.of(names);

Stream流常见使用方法(中间流和终结流)

List<String> list=new ArrayList<>();
list.add("小明");
list.add("小红");
list.add("小张");
list.add("小梁");
list.add("小米");
list.stream().filter(s->s.startsWith('张')&&s.length()==2).forEach(System.out::println);

在这个例子中,符合条件的字符串 "小明""小红""小张""小梁" 和 "小米" 都会被打印出来,因为它们都是以 "小" 开头且长度为 2 的字符串。

scores.stream().sorted().forEach(System.out::println);//默认升序
scores.stream().sorted((s1,s2)->Double.compare(s2,s1)).forEach(System.out::println);
//默认降序
scoscores.stream().sorted((s1,s2)->Double.compare(s2,s1)).forEach(System.out::println);
//默认降序res.stream().sorted((s1,s2)>Double.compare(s2,s1)).limit(2).forEach(System.out::println);
//只要前两名
scores.stream().sorted((s1,s2)>Double.compare(s2,s1)).skip(2).forEach(System.out::println);
//跳过前两名
scores.stream().sorted((s1,s2)>Double.compare(s2,s1)).distinct.skip(2).forEach(System.out::println);
//跳过前两名且去重
scores.stream().map(s -> "加10分后:"+(s+10)).forEach(System.out::println);//对数据进行加工,并返回对应的新流。

终结方法

调用完stream,不会返回stream流。

将流收集到数组和集合当中去

Stream<String>s1=list.stream().filter(s->s.startsWith('张'));
List<String>list1=s1.collect( Collectors.tolist());
//收集到list集合
object [] array=s3.toArray();//收集到数组集合
Map<String,Double>map=teachers.stream().collect(collectors.tomap(teacher::getName,Teacher::getSalary));

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/52670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

梧桐数据库(WuTongDB):什么是“顺序扫描”

“顺序扫描”是数据库管理系统&#xff08;DBMS&#xff09;中最基本的访问方法之一&#xff0c;尤其在查询数据时经常被使用。下面是关于顺序扫描技术的详细说明&#xff1a; 1. 定义 顺序扫描&#xff08;Sequential Scan&#xff09;是一种数据访问方法&#xff0c;其中数…

LabVIEW高速数据采集关键问题

在LabVIEW进行高速数据采集时&#xff0c;需要关注以下几个关键问题&#xff1a; 数据采集硬件的选择: 高速数据采集需要高性能的数据采集硬件&#xff0c;例如NI PXIe、USB DAQ等模块。硬件的选择应根据采集速率、通道数、精度、以及应用场景的具体需求来确定。 采集速率与带…

ByteBuffer详解

文章目录 1. ByteBuffer是抽象类&#xff0c;他的主要实现类为2. 获取方式3. 核心结构4. 核心API5. 字符串操作 1. ByteBuffer是抽象类&#xff0c;他的主要实现类为 HeapByteBuffer 堆ByteBuffer JVM内的堆内存 —> 读写操作 效率低 会受到GC影响MappedByteBuffer(DirectB…

桥接模式-多类型登录方式的思考

桥接模式-SSO单点登录 背景:(业务细节已脱敏)需求:问题:解决方式: OAuth2.0 实现单点登录四种授权模式桥接模式优化问题代码实现 背景:(业务细节已脱敏) 基于实习期间的一个代码重构的思考——业务细节已脱敏 基于内部旧框架实现业务toB管理系统&#xff0c;需要迁移数据并新的…

uni-app 手记集。

1、uni-app 是一个使用 Vue.js 开发的前端应用的框架&#xff0c;所以不会Vue.js的小伙伴可以先去看看Vue.js的基础教学。 2、.vue文件结构 <template><div class"container"></div> </template><script type"text/ecmascript-6&q…

【DiskGenius硬盘分区】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

TS 中的接口的作用是什么

在 TypeScript (TS) 中&#xff0c;接口&#xff08;Interfaces&#xff09;扮演着至关重要的角色&#xff0c;它们的主要作用包括&#xff1a; 定义代码契约&#xff1a;接口为代码提供了一种方式来定义对象的形状&#xff0c;即对象可以包含哪些属性以及这些属性的类型是什么…

TCP系列相关内容

一、TCP上传文件 loop——本地回环测试地址。 void *memset&#xff08;void *s,int c,size_t n&#xff09;——给一个变量设定一个值。 1、“粘包”问题 两次分别发送的数据&#xff0c;被一起接收形成该现象。 原因&#xff1a;TCP流式套接字&#xff0c;数据与数据间没…

北京博科测试

公司简介 博科测试是一家通过采用现代测试与试验技术来提供智能测试综合解决方案的供应商&#xff0c;主营业务为伺服液压测试设备和汽车测试试验设备的研发、设计、制造、销售、系统集成等综合服务 公司荣誉 博科测试先后获得北京市“专精特新”中小企业、北京市专精特新“小…

前端速通面经八股系列(二)—— HTML篇

HTML高频面经八股目录 1. src和href的区别2. 对HTML语义化的理解3. DOCTYPE(⽂档类型) 的作⽤4. script标签中defer和async的区别5. 常⽤的meta标签有哪些6. HTML5有哪些更新1. 语义化标签2. 媒体标签3. 表单4. 进度条、度量器5.DOM查询操作6. Web存储7. 其他 7. img的srcset属…

Apache Dubbo关键点分析

Apache Dubbo 的源码的几个关键点分析&#xff1a; 1. SPI 机制 SPI&#xff08;Service Provider Interface&#xff09; 是一种设计模式&#xff0c;用于实现服务的插件化。Dubbo 使用 SPI 机制来实现其扩展点&#xff0c;使得用户可以在不修改框架代码的情况下&#xff0c…

三种通过代码创建矢量文件的方法及例子

现有四个点&#xff1a;(1, 1), (2, 2), (3, 3), (4, 4) 以这四个点围起来就是一个面。 如何通过python创建矢量文件。 我们以创建一个面矢量文件为例子&#xff0c;进行阐释。 我们可以使用geopandas、fiona、gdal库完成矢量创建。 geopandas 假设我们创建的矢量文件格式…

打卡55天------图论(并查集)

图论这里我学的不是很好&#xff0c;作为一名JavaScript前端开发工程师&#xff0c;我能说我基本上在工作中都没用到过吗&#xff1f; 一、并查集理论基础 这个说句实话&#xff0c;我平常工作很少用到&#xff0c;上学的时候好像也没学过&#xff0c;可能我只是本科生吧&…

Chrome H265 WebRTC 支持

Chrome从127版本开始支持RTC H265解码&#xff0c;这样服务器就不需要对H265转码了&#xff0c; H5S和USC会自动检测浏览器支持的解码类型并自动判断是否启动转码&#xff0c;这样客户端不用关心摄像机具体是H264还是H265&#xff0c;尽量使用带GPU的客户端&#xff0c;这样服务…

ArcGIS应用指南:近邻分析(点匹配到最近线段上)

近邻分析通常用于确定一个要素集中的要素与另一个要素集中最近要素的距离。当涉及到点匹配到最近的线时&#xff0c;这种分析可以用来确定每个点到最近线段的距离及位置&#xff0c;也就是我们常说的点匹配到最近线上&#xff0c;可以参考官方文档&#xff1a;近邻分析 (Covera…

动态规划之买卖股票篇-代码随想录算法训练营第三十八天| 买卖股票的最佳时机ⅠⅡⅢⅣ,309.最佳买卖股票时机含冷冻期,714.买卖股票的最佳时机含手续费

121. 买卖股票的最佳时机 题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 讲解视频&#xff1a; 动态规划之 LeetCode&#xff1a;121.买卖股票的最佳时机1 题目描述&#xff1a; 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定…

软件测试-Selenium+python自动化测试

目录 一、元素定位 1.1一个简单的模板 1.2单选框radio定位实战 1.3下拉操作 1.4弹窗 1.5文件上传 1.6 iframe(类似于页中页,嵌套进去了) 二、元素定位实战 会用到谷歌浏览器Chrome测试,需要下载一个Chromedriver(Chrome for Testing availability)对应自己的浏览…

华为2024 届秋招招聘——硬件技术工程师-电源方向-机试题(四套)(每套四十题)

华为 2024 届秋招——硬件-电源机试题&#xff08;四套&#xff09;&#xff08;每套四十题&#xff09; 岗位——硬件技术工程师 岗位意向——电源 真题题目分享&#xff0c;完整版带答案(有答案和解析&#xff0c;答案非官方&#xff0c;未仔细校正&#xff0c;仅供参考&am…

OpenCV杂项图像变换(1)自适应阈值处理函数adaptiveThreshold()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 函数对数组应用自适应阈值。 该函数根据以下公式将灰度图像转换为二值图像&#xff1a; 对于 THRESH_BINARY: t e x t d s t ( x , y ) { maxV…

OpenAI API: How to count tokens before API request

题意&#xff1a;“OpenAI API&#xff1a;如何在 API 请求之前计算令牌数量” 问题背景&#xff1a; I would like to count the tokens of my OpenAI API request in R before sending it (version gpt-3.5-turbo). Since the OpenAI API has rate limits, this seems impor…