当前位置: 首页 > 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…...

告别黑苹果配置噩梦:5大核心优势让开源工具OpCore-Simplify成为新手救星

告别黑苹果配置噩梦&#xff1a;5大核心优势让开源工具OpCore-Simplify成为新手救星 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 黑苹果配置一直是…...

Vivado进阶指南:网表物理约束实战解析

1. 网表物理约束的核心价值 第一次接触Vivado的网表物理约束时&#xff0c;我和很多初学者一样困惑&#xff1a;明明RTL代码已经定义了所有功能&#xff0c;为什么还要多此一举&#xff1f;直到在某次高速ADC数据采集项目中&#xff0c;系统频繁出现时序违例&#xff0c;我才真…...

Z-Image-GGUF实战:为Android应用集成AI头像生成功能

Z-Image-GGUF实战&#xff1a;为Android应用集成AI头像生成功能 最近在做一个社交类的Android应用&#xff0c;产品经理提了个需求&#xff0c;想加入一个“AI生成个性头像”的功能。用户上传一张自己的照片&#xff0c;选择喜欢的风格&#xff08;比如动漫风、油画感、像素艺…...

百川2-13B-4bits量化版温度参数研究:OpenClaw任务稳定性影响

百川2-13B-4bits量化版温度参数研究&#xff1a;OpenClaw任务稳定性影响 1. 温度参数与自动化任务的微妙关系 上周我在调试OpenClaw自动处理周报的任务时&#xff0c;遇到了一个奇怪现象&#xff1a;同样的提示词&#xff0c;有时候生成的周报结构清晰、重点突出&#xff0c;…...

掌握Argos Translate:离线翻译与隐私保护实战指南

掌握Argos Translate&#xff1a;离线翻译与隐私保护实战指南 【免费下载链接】argos-translate Open-source offline translation library written in Python 项目地址: https://gitcode.com/GitHub_Trending/ar/argos-translate 在当今数据隐私日益受到重视的时代&…...

Swagger2配置避坑指南:为什么你的Docket分组设置会导致api-docs 404?

Swagger2配置避坑指南&#xff1a;为什么你的Docket分组设置会导致api-docs 404&#xff1f; 在RESTful API开发中&#xff0c;Swagger2作为API文档生成工具被广泛使用。但许多开发者在配置过程中都遇到过这样的问题&#xff1a;明明能正常访问swagger-ui.html页面&#xff0c;…...

AI-Agent元年来了!2026年全面爆发,掌握Agent工程化思维,从0到1打造爆款智能体!

前言 如果说[2025年是AI-Agent元年]&#xff0c;那么2026年无疑是AI-Agent全面爆发的一年。无论是近期引发全民热潮的“养虾”智能体[OpenClaw&#xff0c;还是渗透进各行各业、解决实际工作问题的智能助手&#xff0c;它们都属于AI-Agent的生动实践。从这些案例中不难看出&…...

STM32F103RCT6小车调试实录:搞定TCRT5000循迹与TB6612FNG调速的5个常见坑

STM32F103RCT6小车调试实战&#xff1a;从TCRT5000循迹到TB6612FNG调速的深度排错指南 实验室里&#xff0c;当你看着自己组装的STM32智能小车在黑色轨迹线上歪歪扭扭地行驶&#xff0c;或是电机转速时快时慢不受控制时&#xff0c;那种挫败感我太熟悉了。这不是一篇教你如何从…...

Q345A、Q345B、Q345C、Q345D、Q345E钢材的性能差异分析

Q345A、Q345B、Q345C、Q345D、Q345E 钢材的性能差异分析 Q345是一种钢材的材质。它是低合金钢(C<0.2%),广泛应用于建筑,桥梁、车辆、船舶、压力容器等。Q代表的是这种材质的屈服强度,后面的345,就是指这种材质的屈服值,在345MPa左右。并会随着材质的厚度的增加而使其…...

PingFangSC字体系统:跨平台中文字体解决方案的技术实践

PingFangSC字体系统&#xff1a;跨平台中文字体解决方案的技术实践 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件&#xff0c;包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC 在数字化产品开发中&#xff0c;字体选…...