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

news2024/11/30 12:41:55

🎊专栏【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>() {
                                              @Override
                                              public Object apply(String s) {
                                                  return null;
                                              }
                                          },
                        new Function<String, Object>() {
                            @Override
                            public Object apply(String s) {
                                return null;
                            }
                        }));

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

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

在这里插入图片描述

🌺练习

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

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

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

相关文章

机器人过程自动化(RPA)入门 7. 处理用户事件和助手机器人

在UiPath中,有两种类型的Robot用于自动化任何流程。一个是后台机器人,它在后台工作。它独立工作,这意味着它不需要用户的输入或任何用户交互。另一个是前台机器人,也被称为助理机器人。 本章介绍前台机器人。在这里,我们将了解自动化过程中通过简单按键、单击鼠标等触发事…

代码随想录算法训练营第四十六天 | 动态规划 part 8 | 139.单词拆分、多重背包、背包问题总结

目录 139.单词拆分思路代码 多重背包背包问题总结 139.单词拆分 Leetcode 思路 dp[i] : 字符串长度为i的话&#xff0c;dp[i]为true&#xff0c;表示可以拆分为一个或多个在字典中出现的单词。如果确定dp[j] 是true&#xff0c;且 [j, i] 这个区间的子串出现在字典里&#xf…

仿真数据检查器如何比较数据

可以定制仿真数据检查器比较过程&#xff0c;以多种方式满足您的需求。在比较各运行时&#xff0c;仿真数据检查器会执行以下操作&#xff1a; 根据对齐设置&#xff0c;对齐基线运行和比较项运行中的信号对组。 仿真数据检查器不会比较无法对齐的信号。 根据指定的同步方法同…

Leetcode 剑指 Offer II 046. 二叉树的右视图

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底…

【中秋国庆不断更】OpenHarmony定义可动画属性:@AnimatableExtend装饰器

AnimatableExtend装饰器用于自定义可动画的属性方法&#xff0c;在这个属性方法中修改组件不可动画的属性。在动画执行过程时&#xff0c;通过逐帧回调函数修改不可动画属性值&#xff0c;让不可动画属性也能实现动画效果。 可动画属性&#xff1a;如果一个属性方法在animation…

批量剪辑视频软件,支持免费试用,合成视频,预览不限量不收费

几乎对于所有的短视频创作者来说&#xff0c;批量剪辑软件都是现在或者将来必备的办公软件。现如今市场上的批量剪辑软件也是层出不穷&#xff0c;质量也是良莠不齐。 今天给大家实实在在的推荐一款性价比非常高的批量剪辑软件——超级编导&#xff0c;适用于既想提升团队视频…

volatile关键字以及使用场景

在多线程环境下&#xff0c;如果编程不当&#xff0c;可能会出现程序运行结果混乱的问题。 出现这个原因主要是&#xff0c;JMM 中主内存和线程工作内存的数据不一致&#xff0c;以及多个线程执行时无序&#xff0c;共同导致的结果。 同时也提到引入synchronized同步锁&#x…

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

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

杀掉进程但是fastapi程序还在运行

两个脚本&#xff0c;一个运行fastapi服务&#xff0c;一个重启服务&#xff1a; 启动服务先&#xff1a; 发现问题&#xff0c;杀掉 server.sh 后&#xff0c;依旧有&#xff1a; 不知道为什么会出现这个&#xff0c;直接kill吧&#xff1a; server.sh: #!/bin/bashparpath/…

Unity/WebGL打包/跨域问题/简单解决“......has been blocked by CORS policy: ......“

报错原文&#xff1a; Access to XMLHttpRequest atfile:///C:/Users/13171/My%20project%20(1)/Test/Build/test.data.gz from origin null has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-e…

NX 1988 如何将组件转为部件

打开组件 文件-导出-部件 指定部件名为1206&#xff0c;类选择&#xff1a;所有要导出的部件 选择完全加载 完成

(vue3)create-vue 组合式APIsetup、ref、watch,通信

优势&#xff1a; 更易维护&#xff1a;组合式api&#xff0c;更好的TS支持 之前是选项式api&#xff0c;现在是组合式&#xff0c;把同功能的api集合式管理 复用功能封装成一整个函数 更快的速度 更小的体积 更优的数据响应式&#xff1a;Proxy create-vue 新的脚手架工…

vue前端项目中添加独立的静态资源

如果想要在vue项目中放一些独立的静态资源&#xff0c;比如html文件或者用于下载的业务模板或其他文件等&#xff0c;需要在vue打包的时候指定一下静态资源的位置和打包后的目标位置。 使用的是 copy-webpack-plugin 插件&#xff0c;如果没有安装则需要先安装一下&#xff0c;…

Pikachu靶场——PHP反序列化漏洞

文章目录 1. PHP反序列化1.1 反序列化代码审计1.2 漏洞防御 1. PHP反序列化 可参考我写的另一篇博客&#xff1a;反序列化漏洞及漏洞复现。 序列化serialize() 序列化说通俗点就是把一个对象变成可以传输的字符串&#xff0c;比如下面是一个对象&#xff1a; class S{publi…

Push rejected: Push to origin/master was rejected

Push rejected: Push to origin/master was rejected 原因&#xff1a;推拒绝&#xff1a;推送到起源/主人被拒绝 解决方案如下&#xff1a; 方案1&#xff1a; 1.在Idea打开终端 方案2&#xff1a; 1、在对应项目文件里打开 Git Bash 然后依次输入&#xff1a; git pull …

【数据结构--八大排序】之堆排序

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

Databend 开源周报第112期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 理解用户自定义…

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

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

MathType7.4最新版本下载安装教程来咯!

MathType是全球领先的所见即所得公式编辑器&#xff0c;支持书写任何类型的数学方程式。 MathType曾作为Microsoft Word内置公式编辑器&#xff0c;与微软办公套件完美兼容&#xff0c;支持WPS&#xff0c;亦可以独立单机软件使用。是为数学理工经济学习研究、学术发表的有力拍…

echarts使用custom类型绘制矩形

echarts中根据坐标点和点的宽高绘制不同大小的矩形 效果图 <template><div style"height: 100%; width: 100%"><BaseChart emitChart"emitChart" :option"option1" /></div> </template><script> export …