【从入门到起飞】JavaSE—Stream流

news/2024/5/28 3:15:07/文章来源:https://blog.csdn.net/m0_72853403/article/details/133428177

🎊专栏【JavaSE】
🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。
🎆音乐分享【如愿】
🥰欢迎并且感谢大家指出我的问题

文章目录

  • 🍔Stream流的作用
  • 🍔Stream流的使用步骤
    • 🎄获取Stream流
    • ⭐单列集合获取Stream流
    • ⭐双列集合获取Stream流
      • 🛸方法一
      • 🛸方法二
    • ⭐数组获取Stream流
    • ⭐一堆零散数据获取Stream流
  • 🍔Stream流的中间方法
    • ⭐过滤 filter
      • 🛸链式编程
    • ⭐获取前几个元素 limit
    • ⭐跳过前几个元素 skip
    • ⭐元素去重 distinct
    • ⭐合并流 concat
  • 🍔Stream流的终结方法
    • ⭐遍历 forEach
    • ⭐统计 count
    • ⭐收集流中的数据,放到数组中 toArray
    • ⭐收集方法 collect
      • 🛸收集到list集合中
      • 🛸收集到Set集合中
      • 🛸收集到Map集合中
  • 🌺练习

在这里插入图片描述

🍔Stream流的作用

结合了lambda表达式,起到了简化集合,数组的作用

🍔Stream流的使用步骤

  1. 先得到一条Stream流,并把数据放上去
  2. 使用中间方法对流水线上的数据进行操作
  3. 使用终结方法对流水线上的数据进行操作

🎄获取Stream流

在这里插入图片描述

⭐单列集合获取Stream流

在这里插入图片描述

⭐双列集合获取Stream流

由于双列集合不能直接获取Stream流,我们可以所有下面2种方法来解决

🛸方法一

使用keySet()获得所有的

在这里插入图片描述

🛸方法二

使用entrySet()获得所有的键值对对象

在这里插入图片描述

⭐数组获取Stream流

在这里插入图片描述

⭐一堆零散数据获取Stream流

在这里插入图片描述

🍔Stream流的中间方法

在这里插入图片描述
中间方法,返回新的Stream流,原来的Stream流只能使用一次,建议使用链式编程
修改Stream流中的数据,不会影响原来集合或数组中的数据

⭐过滤 filter

在这里插入图片描述
可以多次过滤

在这里插入图片描述

🛸链式编程

在这里插入图片描述
为了解决上图的问题,我们可以使用链式编程

在这里插入图片描述

⭐获取前几个元素 limit

在这里插入图片描述

⭐跳过前几个元素 skip

在这里插入图片描述

⭐元素去重 distinct

依赖的是hashCode和equals方法
在这里插入图片描述

⭐合并流 concat

在这里插入图片描述

🍔Stream流的终结方法

⭐遍历 forEach

在这里插入图片描述

⭐统计 count

在这里插入图片描述

⭐收集流中的数据,放到数组中 toArray

在这里插入图片描述
然后按ctrl+alt+v自动生成左边
在这里插入图片描述
发现是object类型的
在这里插入图片描述

如果我们想把数据放到指定类型中,例如String类型,那么一个怎么写呢

在这里插入图片描述

⭐收集方法 collect

🛸收集到list集合中

在这里插入图片描述

🛸收集到Set集合中

在这里插入图片描述

🛸收集到Map集合中

list.stream().filter(s->"男".equals(s.split("-")[1])).collect(Collectors.toMap(键的规则,值的规则));

补全后是

 list.stream().filter(s->"男".equals(s.split("-")[1])).collect(Collectors.toMap(new Function<String, Object>() {@Overridepublic Object apply(String s) {return null;}},new Function<String, Object>() {@Overridepublic Object apply(String s) {return null;}}));

为什么new后面是Function
查看toMap的源码,发现里面就是Function
在这里插入图片描述

使用map进行收集时,键不能重复

在这里插入图片描述

🌺练习

参考视频
基础练习题
综合练习题

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

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

相关文章

Android Shape设置背景

设置背景时&#xff0c;经常这样 android:background“drawable/xxx” 。如果是纯色图片&#xff0c;可以考虑用 shape 替代。 shape 相比图片&#xff0c;减少资源占用&#xff0c;缩减APK体积。 开始使用。 <?xml version"1.0" encoding"utf-8"?…

100行 python实现Android与windows局域网文件夹同步

编程解决一切烦恼 Obsidian搭建个人笔记 最近在使用Obsidian搭建个人云笔记 尽管我使用腾讯云COS图床gitee实现了云备份&#xff0c;但是在Android上使的Obsidian备份有点麻烦。还好我主要是在电脑端做笔记&#xff0c;手机只是作为阅读工具。 所以&#xff0c;我写一个局域…

Spring Boot 技术架构图(InsCode AI 创作助手辅助)

Spring Boot 技术架构是一种用于构建现代应用程序的框架&#xff0c;它可以与各种前端、代理、网关、业务服务、中间件、存储、持续集成和容器服务集成在一起&#xff0c;以创建功能强大的应用程序。 源文件下载链接&#xff01;&#xff01;&#xff01;&#xff01;&#xff…

02-Zookeeper实战

上一篇&#xff1a;01-Zookeeper特性与节点数据类型详解 1. zookeeper安装 Step1&#xff1a; 配置JAVA环境&#xff0c;检验环境&#xff1a; java -versionStep2: 下载解压 zookeeper wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.8/apache-zookeepe…

Android Studio 的aapt2.exe在哪个目录下

一般在&#xff1a;C:\Users\admin\AppData\Local\Android\Sdk\build-tools\30.0.2&#xff08;不一定是30.0.2&#xff0c;这个得看你的版本&#xff09; 怎么找&#xff1a; 1.打开Android studio

unity lua开发体系搭建

在前面的文章里面我们已经介绍了怎么样在unity里面配置lua的开发环境&#xff0c;我们可以通过C#代码装载lua的脚本并执行相应的处理&#xff0c;这次我们一步步搭建下lua的开发体系。 1.基于c#体系所有的类都继承MonoBehaviour在这里lua环境下我们也需要创建一个类似于这个类的…

9月的一些琐碎,但值得记录的事情!

明显感觉时间过得好快&#xff0c;上个月还在写8月的小结&#xff0c;马上就是9月的了。 9月份比较忙&#xff0c;但是很充实&#xff0c;可能自己创业做事情&#xff0c;多少更有动力一些。 1. 要说&#xff19;月份最大的事情&#xff0c;就是女儿开始上幼儿园了&#xff0c;…

功率放大器有哪些要求和标准参数

功率放大器是一种常见的电子设备&#xff0c;用于将输入信号增强到更高的功率级别。为了满足不同应用需求&#xff0c;功率放大器需要符合一些特定的要求和标准参数。 在现代电子设备中&#xff0c;功率放大器广泛应用于各种领域&#xff0c;如通信、音频放大、射频放大等。它们…

APP自动化之weditor工具

由于最近事情颇多&#xff0c;许久未更新文章。大家在做APP自动化测试过程中&#xff0c;可能使用的是Appium官方提供的inspect进行元素定位&#xff0c;但此工具调试不方便&#xff0c;于是今天给大家分享一款更好用的APP定位元素工具&#xff1a;weditor weditor基于web网页…

复杂度分析

文章目录 如何分析、统计算法的执行效率和资源消耗&#xff1f;为什么需要复杂度分析&#xff1f;测试结果非常依赖测试环境测试结果受数据规模的影响很大 大O复杂度表示法时间复杂度分析只关注循环次数最多的一段代码加法法则&#xff1a;总复杂度等于量级最大的那段代码的复杂…

分布式网络在移动医疗场景中的应用

随着医疗信息化建设实践的深入&#xff0c;越来越多的医疗机构开始借助网络信息技术改善其运营及管理模式&#xff0c;为患者提供更高质量、更高效率、更加安全体贴的医疗服务。移动医疗便是在此背景下产生的新业务需求。 常见的移动医疗场景 住院部&#xff1a;移动查房、智…

力扣 -- 44. 通配符匹配

解题步骤&#xff1a; 参考代码&#xff1a; class Solution { public:bool isMatch(string s, string p) {int ms.size();int np.size();//为了调整映射关系s s;p p;//多开一行多开一列vector<vector<bool>> dp(m1,vector<bool>(n1,false));//初始化//dp[0]…

【GDB】使用 GDB 自动画红黑树

阅读本文前需要的基础知识 用 python 扩展 gdb python 绘制 graphviz 使用 GDB 画红黑树 前面几节中介绍了 gdb 的 python 扩展&#xff0c;参考 用 python 扩展 gdb 并且 python 有 graphviz 模块&#xff0c;那么可以用 gdb 调用 python&#xff0c;在 python 中使用 grap…

数据结构--双链表

今天我们来用数组来模拟双链表 为什么要数组模拟呢&#xff1f; 因为用数组模拟的双链表&#xff0c;运行速度更快&#xff0c;做算法题更加舒服 用数组模拟双链表的内容 1、同样也有首尾结点 2、相邻的两个节点是相互指向的 3、可以看成两个方向相反的单链表相互连接在一起 …

【项目】Http服务器

【项目】Http服务器 项目简介 背景&#xff1a; http协议被广泛使用&#xff0c;从移动端&#xff0c;pc端浏览器&#xff0c;http协议无疑是打开互联网应用窗口的重要协议&#xff0c;http在网络应用层中的地位不可撼动&#xff0c;是能准确区分前后台的重要协议。 描述&a…

Android Studio插件版本与Gradle 版本对应关系

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、Gradle各版本对应关系3.1 Gradle 版…

26663-2011 大型液压安全联轴器 课堂随笔

声明 本文是学习GB-T 26663-2011 大型液压安全联轴器. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了大型液压安全联轴器的分类、技术要求、试验方法及检验规则等。 本标准适用于联接两同轴线的传动轴系&#xff0c;可起到限制…

【AntDesign】封装全局异常处理-全局拦截器

[toc] 场景 本文前端用的是阿里的Ant-Design框架&#xff0c;其他框架也有全局拦截器&#xff0c;思路是相同&#xff0c;具体实现自行百度下吧 因为每次都需要调接口&#xff0c;都需要单独处理异常情况&#xff08;code !0&#xff09;&#xff0c;因此前端需要对后端返回的…

问题记录 springboot 事务方法中使用this调用其它方法

原因: 因为代理对象中调用了原始对象的toString()方法,所以两个不同的对象打印出的引用是相同的

解决Linux服务器中docker访问报127.0.0.1:2375拒绝连接 (Connection refused)的问题

解决问题&#xff1a; org.apache.hc.client5.http.HttpHostConnectException: Connect to http://127.0.0.1:2375 [/127.0.0.1] failed: 拒绝连接 (Connection refused) 解决思路&#xff1a; 在Linux服务器中&#xff0c;Docker是远程访问的&#xff0c;因此需要开放2375端口…