当前位置: 首页 > news >正文

Java stream 流的基本使用

Java stream 的基本使用

package com.zhong.streamdemo.usestreamdemo;import jdk.jfr.DataAmount;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.stream.Stream;/*** @ClassName : UseStream* @Description : stream 流的简单使用* @Author : zhx* @Date: 2024-02-08 15:24*/
public class UseStream {public static void main(String[] args) {// filter 过滤不满足条件的元素 返回满足条件的元素System.out.println("-------------筛选成绩大于60分的信息-------------");ArrayList<Double> strem1 = new ArrayList<>(List.of(60.1, 45.2, 90.2, 99.9, 76.3));List<Double> collect = strem1.stream().filter(x -> x > 60).toList();System.out.println(collect);// stream 对于对象的操作System.out.println("-------------stream 对于对象的操作-------------");ArrayList<Student> students = new ArrayList<>(List.of(new Student("小钟", 22, 179.1),new Student("小钟", 22, 179.1),new Student("小王", 21, 153.9),new Student("小王", 21, 153.9),new Student("张三", 52, 160.8),new Student("李四", 42, 140.5),new Student("王五", 18, 135.3)));// 筛选年龄大于 17 且小于 30 的学生信息System.out.println("-------------筛选年龄大于 17 且小于 30 的学生信息-------------");List<Student> list = students.stream().filter(x -> x.getAge() > 17)       // 过滤年龄小于等于 17 的.filter(x -> x.getAge() < 30)       // 过滤年龄大于等于 30 的.toList();list.forEach(System.out::println);// 筛选身高最高的 3 名学生信息System.out.println("-------------筛选身高前三的学生信息-------------");List<Student> list1 = students.stream().sorted(Comparator.comparing(Student::getHeight))   // 按照身高排序.skip(students.size() - 3)                      // skip(n) 忽略数组 -3 长度 相当于截取最后三个元素.toList();list1.forEach(System.out::println);// 筛选身高最后的 2 名学生信息System.out.println("-------------筛选身高前三的学生信息-------------");List<Student> list2 = students.stream().sorted(Comparator.comparing(Student::getHeight)).limit(2)       // 截取几个元素.toList();list2.forEach(System.out::println);// 筛选身高超过 153 的学生的姓名 去除重复的名字System.out.println("-------------筛选身高超过 153 的学生的姓名 去除重复的名字-------------");List<String> list3 = students.stream().filter(x -> x.getHeight() > 153).map(Student::getName)  // 转换算子.distinct()             // distinct() 去重.toList();// distinct() 去重 如果是对象去重 需要重写 hashCode 和 equals 方法System.out.println(list3);// Stream.concat(stream1, stream2) 合并流System.out.println("-------------Stream.concat(stream1, stream2) 合并流-------------");Stream<String> stream1 = Stream.of("张三1", "李四1");Stream<String> stream2 = Stream.of("张三2", "李四2", "王五2");Stream<String> concatStream = Stream.concat(stream1, stream2);concatStream.forEach(System.out::println);}
}@Data
@AllArgsConstructor
@NoArgsConstructor
class Student {private String name;private int age;private double height;// distinct() 去重 如果是对象去重 需要重写 hashCode 和 equals 方法
//    @Override
//    public boolean equals(Object o) {
//        if (this == o) return true;
//        if (o == null || getClass() != o.getClass()) return false;
//        Student student = (Student) o;
//        return age == student.age && Double.compare(height, student.height) == 0 && Objects.equals(name, student.name);
//    }
//
//    @Override
//    public int hashCode() {
//        return Objects.hash(name, age, height);
//    }
}

在这里插入图片描述

相关文章:

Java stream 流的基本使用

Java stream 的基本使用 package com.zhong.streamdemo.usestreamdemo;import jdk.jfr.DataAmount; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.util.ArrayList; import java.util.Comparator; import java.util.Li…...

C++面向对象 Part 2

文章目录 类六个默认存在的成员函数构造函数&#xff1a;析构函数&#xff1a;拷贝构造函数:拷贝构造详解及细节&#xff1a; 赋值运算符重载;取地址及const取地址操作符重载const修饰的含义&#xff1a; 类六个默认存在的成员函数 构造函数 析构函数 拷贝构造函数 赋值运算…...

海外云手机的核心优势

随着5G时代的到来&#xff0c;云计算产业正处于高速发展的时期&#xff0c;为海外云手机的问世创造了一个可信任的背景。在资源有限且需求不断增加的时代&#xff0c;将硬件设备集中在云端&#xff0c;降低个人用户的硬件消耗&#xff0c;同时提升性能&#xff0c;这一点单单就…...

CDN相关和HTTP代理

CDN相关和HTTP代理 参考&#xff1a; 《透视 HTTP 协议》——chrono 把这两个放在一起是因为容易搞混&#xff0c;我一开始总以为CDN就是HTTP代理&#xff0c;但是看了极客时间里透视HTTP协议的讲解&#xff0c;感觉又不仅于此&#xff0c;于是专门写下来。 先说结论&#xf…...

STM32的ADC电压采集

时间记录&#xff1a;2024/2/9 一、ADC相关知识点 &#xff08;1&#xff09;STM32的ADC时钟不要超过14MHz&#xff0c;不然结果的准确率将下降 &#xff08;2&#xff09;ADC分为规则组和注入组&#xff0c;规则组相当于正常运行的程序&#xff0c;注入组相当于中断可以打断…...

基于麻雀优化算法优化XGBoost参数的优化控制策略

目录 一、背景 二、算法流程图 三、附录 一、背景 为提高极端梯度提升&#xff08;Extreme Gradient Boosting, XGBoost&#xff09;集成算法在时间预测、信贷风险预测、工件参数预测、故障诊断预测等方面中的准确性&#xff0c;研究者提出了一种改进的麻雀算法&#xff08;…...

Python爬虫——请求库安装

目录 1.打开Anaconda Prompt 创建环境2.安装resuests3.验证是否安装成功4.安装Selenium5.安装ChromeDriver5.1获取chrom的版本5.1.1点击浏览器右上三个点5.1.2点击设置5.1.3下拉菜单&#xff0c;点击最后关于Chrome&#xff0c;获得其版本 5.2 打开网址 [chromedriver](https:/…...

瑞芯微推理RKNN使用

参考资料 toolkit2 官网资料 野火实践指南 Ubuntu22.04实践 安装toolkit2 安装命令pip3 install -r xxx/packages/requirements_cp310-1.6.0.txt pip3 install xxx/packages/rknn_toolkit2-1.6.081f21f4d-cp310-cp310-linux_x86_64.whl注意加上 -i xxx 可能会造成下载tf-es…...

动漫风博客介绍页面源码

动漫风博客介绍页面源码&#xff0c;HTML源码&#xff0c;图片背景有淡入切换特效 蓝奏云&#xff1a;https://wfr.lanzout.com/iIDZu1nrmjve...

网络的基本概念和socket编程

网络的基本概念 1.协议1.1 协议的基本概念1.2 常见的协议 2.分层模型2.1网络七层OSI 7层模型&#xff1a;物数网传会表应(口诀)2.2TCP/IP模型2.3数据通信的过程2.4网络的设计模式2.5以太网帧的格式 3.SOCKET编程3.1网络字节序3.2 相关结构体和函数3.3 代码实现 1.协议 1.1 协议…...

探索C语言的内存魔法:动态内存管理解析

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C语言学习 贝蒂的主页&#xff1a;Betty‘s blog 1. 静态开辟内存 通过前面的学习&#xff0c;我们已经掌握了两种开辟内存的方…...

2023年全国职业院校技能大赛软件测试赛题第3套

2023年全国职业院校技能大赛 软件测试赛题第3套 赛项名称&#xff1a; 软件测试 英文名称&#xff1a; Software Testing 赛项编号&#xff1a; GZ034 归属产业&#xff1a; 电子与信息大类 …...

【数据分享】1929-2023年全球站点的逐日降水量数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、湿度等指标&#xff0c;说到常用的降水数据&#xff0c;最详细的降水数据是具体到气象监测站点的降水数据&#xff01; 有关气象指标的监测站点数据&#xff0c;之前我们分享过1929-2023年全…...

SpringBoot WebSocket客户端与服务端一对一收发信息

依赖 <!--websocket--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>配置类 Configuration public class WebSocketConfig {Bean //方法返回值交…...

MinGW/MSYS/GCC/GNU/MSVC/Clang/LLVM都是什么

MinGW&#xff08;Minimalist GNU for Windows&#xff09;&#xff1a; MinGW&#xff08;Minimalist GNU for Windows&#xff09;是一个用于Windows平台的开发工具集&#xff0c;它提供了一组用于编译和构建应用程序的工具和库。它的目标是在Windows环境下提供一个类Unix的…...

9.0 Zookeeper 节点特性

本章节介绍一下 zookeeper 的节点特性和简单使用场景&#xff0c;正是由于这些节点特性的存在使 zookeeper 开发出不同的场景应用。 1、同一级节点 key 名称是唯一的 实例&#xff1a; $ ls / $ create /runoob 2 已存在 /runoob 节点&#xff0c;再次创建会提示已经存在。 …...

VUEX项目场景

VUEX项目场景 一、登录状态存储 登录页面代码 <template><div><input v-model"username" type"text" placeholder"Username"><input v-model"password" type"password" placeholder"Password&…...

vue+springboot前后端视频文件等的上传与展示(基于七牛云)

前言&#xff1a;在初步说明完成功能之前&#xff0c;我会把重要的部分说明下。后续我会细化。 vue视频文件上传 其实这里和图片这些文件就是一样的。因为上传只是把我们想在云端展示的文件按等传输到云端的bucket。然后方便网站去请求引用。 有人问我我就说明下。这种东西无…...

ClickHouse--02--安装

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 安装官网 &#xff1b;[https://clickhouse.com/docs/zh/getting-started/install](https://clickhouse.com/docs/zh/getting-started/install)![在这里插入图片描述…...

【学网攻】 第(23)节 -- PPP协议

系列文章目录 目录 系列文章目录 文章目录 前言 一、PPP协议是什么&#xff1f; 二、实验 1.引入 实验目的 实验背景你是某公司的网络管理员&#xff0c;现在需要与另一个公司进行通信,需要你配置PPP协议保证双方发送的人是真正的而非黑客 技术原理 实验步骤新建Pack…...

3个高效方法解决抖音素材管理难题:从零散文件到有序素材库

3个高效方法解决抖音素材管理难题&#xff1a;从零散文件到有序素材库 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback s…...

Obsidian i18n终极指南:3步实现插件界面中文化,告别英文困扰

Obsidian i18n终极指南&#xff1a;3步实现插件界面中文化&#xff0c;告别英文困扰 【免费下载链接】obsidian-i18n 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-i18n 你是否曾经因为Obsidian插件全是英文界面而感到困惑&#xff1f;每次打开设置页面&…...

32dB增益+79%效率:HT20340S在工业射频能源中的高能效设计

HT20340S&#xff1a;400W LDMOS宽带射频功率放大器在大功率射频能量应用、工业加热、等离子体激励以及宽带通信等领域&#xff0c;功率放大器&#xff08;PA&#xff09;的性能直接决定了系统的发射效率与作用距离。当需要在10MHz至300MHz的宽带范围内实现数百瓦的连续波输出时…...

FactoryIO虚拟仓储避坑指南:从入仓出仓到急停处理的完整调试流程

FactoryIO虚拟仓储避坑实战&#xff1a;从坐标校准到多任务管理的深度调试手册 当第一次在FactoryIO中搭建虚拟仓储系统时&#xff0c;我盯着屏幕上那个69的货架模型&#xff0c;满心以为两小时就能搞定入仓出仓逻辑。直到凌晨三点&#xff0c;我还在和那个永远差0.006的坐标值…...

从模型到代码:无人驾驶轨迹跟踪算法(Stanley、LQR、PID)的Carsim/Simulink联合仿真实践

1. 无人驾驶轨迹跟踪算法入门指南 第一次接触无人驾驶轨迹跟踪算法时&#xff0c;我被各种专业术语搞得晕头转向。直到真正动手在Carsim和Simulink里搭建仿真环境&#xff0c;才明白这些算法到底是怎么运作的。轨迹跟踪算法的核心任务很简单&#xff1a;让车辆按照预定路线行驶…...

【免费下载】 C小项目分享(22个)亲测可运行

C#小项目分享(22个)亲测可运行 【下载地址】C小项目分享22个亲测可运行 C#小项目分享(22个)亲测可运行 项目地址: https://gitcode.com/open-source-toolkit/73645 资源介绍 本仓库提供了一个包含22个C#小项目的资源文件&#xff0c;所有项目均经过亲测&#xff0c;确保…...

【亲测免费】 DXF轨迹图转G代码工具:高效、精准的数控编程利器

DXF轨迹图转G代码工具&#xff1a;高效、精准的数控编程利器 【下载地址】DXF轨迹图转G代码工具介绍 DXF轨迹图转G代码工具介绍本仓库提供了一个资源文件&#xff0c;用于将DXF格式的轨迹图转换为G代码 项目地址: https://gitcode.com/open-source-toolkit/528cd 项目介…...

Flowable 6.7.2 适配达梦数据库踩坑实录:从驱动到Liquibase源码修改全攻略

Flowable 6.7.2 深度适配达梦数据库实战指南&#xff1a;从驱动配置到源码级改造 在国产化替代浪潮中&#xff0c;数据库迁移往往是技术团队面临的首要挑战。当工作流引擎Flowable遇上国产数据库达梦(DM)&#xff0c;两者的"语言不通"会导致一系列兼容性问题。本文将…...

Perplexity AI认证考试情报解密(2024Q3动态锁频版):仅限内部渠道更新的题库变动预警

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity AI认证考试情报解密&#xff08;2024Q3动态锁频版&#xff09;&#xff1a;仅限内部渠道更新的题库变动预警 核心变动速览 2024年第三季度起&#xff0c;Perplexity AI官方对认证考试实施“…...

Ardupilot无人船新手必看:从遥控器开关到地面站,3档模式设置保姆级教程

Ardupilot无人船控制模式全解析&#xff1a;从基础配置到高阶应用实战 第一次接触Ardupilot无人船时&#xff0c;最让人困惑的莫过于各种控制模式的区别与适用场景。作为开源自动驾驶系统的标杆&#xff0c;Ardupilot为无人船提供了多达14种控制模式&#xff0c;每种模式都有其…...