Stream操作流 练习
基础数据:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private String name;private int age;private String sex;private String city;private Integer money;
static List<User> users = new ArrayList<>();public static void main(String[] args) {test1();}public static void test1(){users.add(new User("诺手",21,"男","北京",1200));users.add(new User("佛爷个",21,"男","北京",2100));users.add(new User("刀妹",23,"女","上海",3200));users.add(new User("海哥2",30,"女","上海",2600));users.add(new User("压缩",21,"男","苏州",2800));users.add(new User("马儿扎哈",21,"男","苏州",1500));users.add(new User("螳螂",30,"女","杭州",2560));users.add(new User("狮子狗",21,"男","杭州",2780));users.add(new User("赵信",21,"男","成都",1890));}
}练习一 : 根据城市分组,代码如下:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private String name;private int age;private String sex;private String city;private Integer money;
static List<User> users = new ArrayList<>();public static void main(String[] args) {test1();test2{}}public static void test1(){users.add(new User("诺手",21,"男","北京",1200));users.add(new User("佛爷个",21,"男","北京",2100));users.add(new User("刀妹",23,"女","上海",3200));users.add(new User("海哥2",30,"女","上海",2600));users.add(new User("压缩",21,"男","苏州",2800));users.add(new User("马儿扎哈",21,"男","苏州",1500));users.add(new User("螳螂",30,"女","杭州",2560));users.add(new User("狮子狗",21,"男","杭州",2780));users.add(new User("赵信",21,"男","成都",1890));}//根据城市分组public static void test2(){Map<String,List<User>> collect=users.stream().collect(Collectors.groupingBy(User::getCity));collect.forEach((k,v)->{System.out.println("城市名:"+k);System.out.println(v);});}
}运行结果如下:

练习二:列出每个城市的最有钱的
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private String name;private int age;private String sex;private String city;private Integer money;
static List<User> users = new ArrayList<>();public static void main(String[] args) {test1();test4 () }public static void test1(){users.add(new User("诺手",21,"男","北京",1200));users.add(new User("佛爷个",21,"男","北京",2100));users.add(new User("刀妹",23,"女","上海",3200));users.add(new User("海哥2",30,"女","上海",2600));users.add(new User("压缩",21,"男","苏州",2800));users.add(new User("马儿扎哈",21,"男","苏州",1500));users.add(new User("螳螂",30,"女","杭州",2560));users.add(new User("狮子狗",21,"男","杭州",2780));users.add(new User("赵信",21,"男","成都",1890));}//列出每个城市的最有钱的public static void test4(){Map<String, Optional<User>> collect=users.stream().collect(Collectors.groupingBy(User::getCity,Collectors.maxBy(Comparator.comparingInt(User::getMoney))));collect.forEach((k,v)->{System.out.println("地区:"+k);System.out.println("冠军是:"+v);});};
}运行结果:

练习三根据性别分组:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private String name;private int age;private String sex;private String city;private Integer money;
static List<User> users = new ArrayList<>();public static void main(String[] args) {test1();test3()}public static void test1(){users.add(new User("诺手",21,"男","北京",1200));users.add(new User("佛爷个",21,"男","北京",2100));users.add(new User("刀妹",23,"女","上海",3200));users.add(new User("海哥2",30,"女","上海",2600));users.add(new User("压缩",21,"男","苏州",2800));users.add(new User("马儿扎哈",21,"男","苏州",1500));users.add(new User("螳螂",30,"女","杭州",2560));users.add(new User("狮子狗",21,"男","杭州",2780));users.add(new User("赵信",21,"男","成都",1890));}public static void test3(){Map<String,List<User>> collect=users.stream().collect(Collectors.groupingBy(User::getSex));collect.forEach((k,v)->{System.out.println("性别:"+k);System.out.println(v);});}
}结果如下

练习四 :求每个城市的总金额
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private String name;private int age;private String sex;private String city;private Integer money;static List<User> users = new ArrayList<>();public static void main(String[] args) {test1();test5();}public static void test1(){users.add(new User("京爷1",21,"男","北京",1200));users.add(new User("京爷2",21,"男","北京",2100));users.add(new User("海哥1",23,"女","上海",3200));users.add(new User("海哥2",30,"女","上海",2600));users.add(new User("苏姐1",21,"男","苏州",2800));users.add(new User("苏姐2",21,"男","苏州",1500));users.add(new User("螳螂",30,"女","杭州",2560));users.add(new User("狮子狗",21,"男","杭州",2780));users.add(new User("赵信",21,"男","成都",1890));}//求每个城市的销售总金额spublic static void test5(){Map<String,Integer> map = users.stream().collect(Collectors.groupingBy(User::getCity,Collectors.summingInt(User::getMoney)));map.forEach((k,v)->{System.out.println("城市:"+k);System.out.println("销售总额:"+v);});}
}结果

练习六; 年龄大于28岁的
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private String name;private int age;private String sex;private String city;private Integer money;static List<User> users = new ArrayList<>();public static void main(String[] args) {test1();test4();}public static void test1(){users.add(new User("京爷1",21,"男","北京",1200));users.add(new User("京爷2",21,"男","北京",2100));users.add(new User("海哥1",23,"女","上海",3200));users.add(new User("海哥2",30,"女","上海",2600));users.add(new User("苏姐1",21,"男","苏州",2800));users.add(new User("苏姐2",21,"男","苏州",1500));users.add(new User("螳螂",30,"女","杭州",2560));users.add(new User("狮子狗",21,"男","杭州",2780));users.add(new User("赵信",21,"男","成都",1890));}//过滤年领大于28的员工public static void test7(){List<User> collect = users.stream().filter(s -> s.getAge() > 28).collect(Collectors.toList());System.out.println(collect);}
}结果如下:

练习八:根据moey给所有人排序
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private String name;private int age;private String sex;private String city;private Integer money;static List<User> users = new ArrayList<>();public static void main(String[] args) {test1();test10();}public static void test1(){users.add(new User("京爷1",21,"男","北京",1200));users.add(new User("京爷2",21,"男","北京",2100));users.add(new User("海哥1",23,"女","上海",3200));users.add(new User("海哥2",30,"女","上海",2600));users.add(new User("苏姐1",21,"男","苏州",2800));users.add(new User("苏姐2",21,"男","苏州",1500));users.add(new User("螳螂",30,"女","杭州",2560));users.add(new User("狮子狗",21,"男","杭州",2780));users.add(new User("赵信",21,"男","成都",1890));}//全国根据销售金额排序public static void test10(){users.sort(Comparator.comparing(User::getMoney).reversed());int i=0;//遍历输出for(User user : users){i++;System.out.println("第"+i+"名:"+user);}
}结果如下:

练习九,计算每人平均money
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private String name;private int age;private String sex;private String city;private Integer money;static List<User> users = new ArrayList<>();public static void main(String[] args) {test1();test10();}public static void test1(){users.add(new User("京爷1",21,"男","北京",1200));users.add(new User("京爷2",21,"男","北京",2100));users.add(new User("海哥1",23,"女","上海",3200));users.add(new User("海哥2",30,"女","上海",2600));users.add(new User("苏姐1",21,"男","苏州",2800));users.add(new User("苏姐2",21,"男","苏州",1500));users.add(new User("螳螂",30,"女","杭州",2560));users.add(new User("狮子狗",21,"男","杭州",2780));users.add(new User("赵信",21,"男","成都",1890));}//人均销售金额public static void test9(){double asDouble = users.stream().mapToDouble(User::getMoney).average().getAsDouble();System.out.println(asDouble);}
}
练习十:总共有多少个不同的城市?
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private String name;private int age;private String sex;private String city;private Integer money;static List<User> users = new ArrayList<>();public static void main(String[] args) {test1();test10();}public static void test1(){users.add(new User("京爷1",21,"男","北京",1200));users.add(new User("京爷2",21,"男","北京",2100));users.add(new User("海哥1",23,"女","上海",3200));users.add(new User("海哥2",30,"女","上海",2600));users.add(new User("苏姐1",21,"男","苏州",2800));users.add(new User("苏姐2",21,"男","苏州",1500));users.add(new User("螳螂",30,"女","杭州",2560));users.add(new User("狮子狗",21,"男","杭州",2780));users.add(new User("赵信",21,"男","成都",1890));}public static void testi(){List<String> collect = users.stream().map(User::getCity).distinct().collect(Collectors.toList());int size = collect.size();System.out.println("总共有"+size+"个城市,它们是:"+collect);}
}结果如下:

练习本章代码需要额外的lombok包依赖文件,加载到pomwen文件中
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
<version>1.18.24</version>
</dependency>
相关文章:
Stream操作流 练习
基础数据:Data AllArgsConstructor NoArgsConstructor public class User {private String name;private int age;private String sex;private String city;private Integer money; static List<User> users new ArrayList<>();public static void m…...
【模拟集成电路】宽摆幅压控振荡器(VCO)设计
鉴频鉴相器设计(Phase Frequency Detector,PFD)前言一、VCO工作原理二、VCO电路设计VCO原理图三、压控振荡器(VCO)测试VCO测试电路图瞬态测试(1)瞬态输出(2)局部放大图&a…...
《英雄编程体验课》第 13 课 | 双指针
文章目录 零、写在前面一、最长不重复子串1、初步分析2、朴素算法3、优化算法二、双指针1、算法定义2、算法描述3、条件1)单调性2)时效性三、双指针的应用1、前缀和问题2、哈希问题3、K 大数问题零、写在前面 该章节节选自 《夜深人静写算法》,主要讲解最基础的枚举算法 ——…...
DS期末复习卷(十)
一、选择题(24分) 1.下列程序段的时间复杂度为( A )。 i0,s0; while (s<n) {ssi;i;} (A) O(n^1/2) (B) O(n ^1/3) © O(n) (D) O(n ^2) 12…xn xn^1/2 2.设某链表中最常用的…...
QT+OpenGL模板测试和混合
QTOpenGL模板测试和混合 本篇完整工程见gitee:QtOpenGL 对应点的tag,由turbolove提供技术支持,您可以关注博主或者私信博主 模板测试 当片段着色器处理完一个片段之后,模板测试会开始执行。和深度测试一样,它可能会丢弃片段&am…...
《英雄编程体验课》第 11 课 | 前缀和
文章目录 零、写在前面一、概念定义1、部分和2、朴素做法3、前缀和4、前缀和的边界值5、边界处理6、再看部分和二、题目描述1、定义2、求解三、算法详解四、源码剖析五、推荐专栏六、习题练习零、写在前面 该章节节选自 《算法零基础100讲》,主要讲解最基础的算法 —— 前缀和…...
Java学习--多线程2
2.线程同步 2.1卖票【应用】 案例需求 某电影院目前正在上映国产大片,共有100张票,而它有3个窗口卖票,请设计一个程序模拟该电影院卖票 实现步骤 定义一个类SellTicket实现Runnable接口,里面定义一个成员变量:privat…...
【Virtualization】Windows11安装VMware Workstation后异常处置
安装环境 Windows 11 专业版 22H2 build 22621.1265 VMware Workstation 17 Pro 17.0.0 build-20800274 存在问题 原因分析 1、BIOS未开启虚拟化。 2、操作系统启用的虚拟化与Workstation冲突。 3、操作系统启用内核隔离-内存完整性保护。 处置思路 1、打开“资源管理器”…...
第四章.神经网络—BP神经网络
第四章.神经网络 4.3 BP神经网络 BP神经网络(误差反向传播算法)是整个人工神经网络体系中的精华,广泛应用于分类识别,逼近,回归,压缩等领域,在实际应用中,大约80%的神经网络模型都采用BP网络或BP网络的变化…...
如何压缩RAR格式文件?
RAR是我们日常生活工作中经常用到的压缩文件格式之一,那么RAR文件如何压缩呢? 不管压缩哪种格式的压缩文件,我们都需要用到压缩软件。针对RAR格式,我们可以选择最常见的WinRAR,当然如果有同样适用于RAR格式的压缩软件…...
JS 执行机制 详解(附图)
一、JS是单线程JS语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。这是JS这门脚本语言诞生的使命所致——用来处理页面中用户的交互,以及操作DOM而诞生的。单线程就意味着,所有任务需要排队,前一个任务结束…...
华为OD机试真题Java实现【 计算面积】真题+解题思路+代码(20222023)
计算面积 绘图机器的绘图笔初始位i在原点(0.0)。 机器启动后其绘图笔按下面规则绘制直线: 1 )尝试沿着横向坐标轴正向绘制直线,直到给定的终点值E, 2 )期间可通过指令在纵坐标轴方向进行偏移。井同时绘制直线,偏移后按规则1绘制直线;指令的格式为X offsetY。表示在横坐标X…...
【JVM】运行时数据区与对象的创建流程
4、运行时数据区 4.1、运行时数据区介绍 运行时数据区也就是JVM在运⾏时产生的数据存放的区域,这块区域就是JVM的内存区域,也称为JVM的内存模型——JMM 堆空间(线程共享):存放new出来的对象 元空间(线程共…...
flutter- JSON解析框架使用方法json_serializable
对于目前来说,大部分的API网络请求的通讯内容数据格式都是JSON。JSON返回的都是字符串,假如要取到data里面的id,去直接字符串截取肯定是不行的,要通过一定的方式把它解析成Map或者解析成对象,再去处理它。像一些简单的…...
第十三届蓝桥杯国赛 C++ B 组 J 题——搬砖(AC)
目录1.搬砖1.题目描述2.输入格式3.输出格式4.样例输入5.样例输出6.数据范围7.原题链接2.解题思路3.Ac_code1.搬砖 1.题目描述 这天,小明在搬砖。 他一共有 nnn 块砖, 他发现第 iii 砖的重量为 wiw_{i}wi, 价值为 viv_{i}vi 。他突然想从这些 砖中选一些出来从…...
Spring Cloud Nacos源码讲解(十)- Nacos服务端服务发现处理
Nacos集群数据同步 当我们有服务进行注册以后,会写入注册信息同时会触发ClientChangedEvent事件,通过这个事件,就会开始进行Nacos的集群数据同步,当然这其中只有有一个Nacos节点来处理对应的客户端请求,其实这其中…...
C++ 修改程序进程的优先级(Linux,Windows)
文章目录1、Linux1.1 常用命令1.1.1 不占用终端运行和后台运行方式1.1.2 查询进程1.1.3 结束进程1.1.4 优先级命令1.2 C 代码示例1.2.1 代码一1.2.2 代码二2、Windows2.1 简介2.2 函数声明2.3 C 代码示例2.3.1 代码一2.3.2 代码二结语1、Linux 1.1 常用命令 1.1.1 不占用终端…...
同步和异步promise
进程和线程进程(厂房):程序的运行环境线程(工人):进行运算的东西同步和异步同步:一件事干完才去干下一件事,前面的代码不执行,后面的代码也不执行。同步的代码可能会出现…...
CHATGPT是新的“搜索引擎终结者”吗?百度是否慌了
ChatGPT 以其非凡的自然语言处理 (NLP) 能力和清晰的响应风靡全球,有望带来一场重大的技术革命。在不知不觉中,叙事转向了ChatGPT与百度的对决,因为来自OpenAI的智能和健谈的聊天机器人已经慢慢获得了“潜在的百度终结…...
力扣-订单最多的客户
大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:586. 订单最多的客户二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他总…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
小木的算法日记-多叉树的递归/层序遍历
🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...
TJCTF 2025
还以为是天津的。这个比较容易,虽然绕了点弯,可还是把CP AK了,不过我会的别人也会,还是没啥名次。记录一下吧。 Crypto bacon-bits with open(flag.txt) as f: flag f.read().strip() with open(text.txt) as t: text t.read…...
Appium下载安装配置保姆教程(图文详解)
目录 一、Appium软件介绍 1.特点 2.工作原理 3.应用场景 二、环境准备 安装 Node.js 安装 Appium 安装 JDK 安装 Android SDK 安装Python及依赖包 三、安装教程 1.Node.js安装 1.1.下载Node 1.2.安装程序 1.3.配置npm仓储和缓存 1.4. 配置环境 1.5.测试Node.j…...
