Java8 Stream操作流10条常用方法

1.基础数据

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private String name;private Integer age;private String sex;private String city; //城市private Integer money; //业绩金额
}
//准备数据List<User> users = new ArrayList<>();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));

2.根据城市分组

Map<String, List<User>> collect = users.stream().collect(Collectors.groupingBy(User::getCity));collect.forEach((k,v)->{System.out.println("城市名:"+ k);System.out.println(v);});

3.列出每个城市的销售冠军

 Map<String, Optional<User>> map = users.stream().collect(Collectors.groupingBy(User::getCity,Collectors.maxBy(Comparator.comparingInt(User::getMoney))));

4.求每个城市的销售总金额

 Map<String, Integer> map = users.stream().collect(Collectors.groupingBy(User::getCity,Collectors.summingInt(User::getMoney)));

5.全国销售总金额

int sum = users.stream().mapToInt(User::getMoney).sum();System.out.println("全国销售总金额:"+sum);

6.过滤出年龄大于22岁的员工

 List<User> collect = users.stream().filter(s -> s.getAge()>22).collect(Collectors.toList());System.out.println(collect);


7. 最好与最差的员工的销售金额

Integer max = users.stream().map(User::getMoney).max(Integer::compareTo).get();System.out.println("业绩最好的员工销售金额:"+max);Integer min = users.stream().map(User::getMoney).min(Integer::compareTo).get();System.out.println("业绩最差的员工销售金额:"+min);

8.人均销售金额

double avg = users.stream().mapToDouble(User::getMoney).average().getAsDouble();
System.out.println("人均销售金额:" + avg );

9. 全国根据销售金额排序

users.sort(Comparator.comparing(User::getMoney).reversed());System.out.println(users);

10. 全国有多少销售城市

List<String> citys = users.stream().map(User::getCity).distinct().collect(Collectors.toList());
System.out.println(citys);

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

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

相关文章

nginx介绍及编译安装

nginx介绍 是一个流行的开源的高性能的HTTP和反向代理服务器&#xff0c;也可以用作邮件代理服务器。它以其高性能、稳定性、丰富的功能集和低资源消耗而闻名 nginx特点 高性能&#xff1a; Nginx以其高效的事件驱动架构而闻名&#xff0c;能够处理大量并发连接而不会消耗过多…

阿里云服务器购买_价格_费用_云服务器ECS——阿里云

2024年最新阿里云服务器租用费用优惠价格表&#xff0c;轻量2核2G3M带宽轻量服务器一年61元&#xff0c;折合5元1个月&#xff0c;新老用户同享99元一年服务器&#xff0c;2核4G5M服务器ECS优惠价199元一年&#xff0c;2核4G4M轻量服务器165元一年&#xff0c;2核4G服务器30元3…

基于springboot实现线上阅读系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现线上阅读系统演示 摘要 随着社会发展速度的愈来愈快&#xff0c;以及社会压力变化的越来越快速&#xff0c;致使很多人采取各种不同的方法进行解压。大多数人的稀释压力的方法&#xff0c;是捧一本书籍&#xff0c;心情地让自己沉浸在情节里面&#xff0c;以…

变分自编码器VAE

文章目录 一、机器学习分类二、AE与VAE 一、机器学习分类 机器学习分为&#xff1a;有监督学习、无监督学习、半监督学习、自监督学习、强化学习、迁移学习。 1.有监督学习&#xff1a; ①解释&#xff1a;算法从标注的训练数据中学习&#xff0c;其中每个样本都有相应的输出…

git之多人协作

一.多⼈协作⼀ 目标&#xff1a;在同一个分支上完成多人协作 任务&#xff1a;在linux和windows两个用户下分别在远程仓库&#xff08;非master分支&#xff09;中添加“linux submit”和“windows submit” 现在我们在远程仓库dev分支下filetxt文件情况&#xff1a; 我们先…

https://htmlunit.sourceforge.io/

https://htmlunit.sourceforge.io/ 爬虫 HtmlUnit – Welcome to HtmlUnit HtmlUnit 3.11.0 API https://mvnrepository.com/artifact/net.sourceforge.htmlunit/htmlunit/2.70.0 https://s01.oss.sonatype.org/service/local/repositories/releases/content/org/htmlunit…

JavaScript的书写方式

JavaScript的书写方式 目前较为流行的是第二种和第三种&#xff0c;第一种很少见。在第二种和第三种推荐使用第三种&#xff0c;因为在日常开发/工作中&#xff0c;第三种是最为常见的 1.行内式 把JS代码嵌入到html元素内部 示例代码 运行效果 由于JS中字符串常量可以使用单引…

C++:模版初阶 | STL简介

创作不易&#xff0c;感谢支持&#xff01;&#xff01; 一、泛型编程思想 如何实现一个通用的交换函数呢&#xff1f; 注&#xff1a;其实swap函数在C的标准库提供了&#xff0c;不需要自己写&#xff0c;这边只是举个例子 void Swap(int& left, int& right) { in…

RunnerGo UI自动化测试脚本如何配置

RunnerGo提供从API管理到API性能再到可视化的API自动化、UI自动化测试功能模块&#xff0c;覆盖了整个产品测试周期。 RunnerGo UI自动化基于Selenium浏览器自动化方案构建&#xff0c;内嵌高度可复用的测试脚本&#xff0c;测试团队无需复杂的代码编写即可开展低代码的自动化…

刷题第2天(中等题):LeetCode59--螺旋矩阵--考察模拟能力(边界条件处理)

LeetCode59: 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,2,3],[8,9,4],[7,6,5]]示例 2&#xff1a; 输入&#xff1a…

网格划分中将部分网格投影到其它部件上的方法

1、将网格投影到目标面上&#xff1a; 2、将一个部件边界上单元的点映射到另一个部件上

力扣5. 最长回文子串(双指针、动态规划)

Problem: 5. 最长回文子串 文章目录 题目描述思路复杂度Code 题目描述 思路 思路1&#xff1a;双指针 1.我们利用双指针从中间向两边扩散来判断是否为回文串&#xff0c;则关键是找到以s[i]为中心的回文串&#xff1b; 2.我们编写一个函数string palindrome(string &s, in…

Python中的os库

一.OS库简介 OS是Operating System的简写&#xff0c;即操作系统。 OS库是一个操作系统接口模块&#xff0c;提供一些方便使用操作系统相关功能的函数。 二.OS库常用函数 2.1文件和目录 2.1.1&#xff1a;os.getcwd() 作用&#xff1a;返回当前工作目录&#xff0c;结果是…

前端常用6种数据加密方式的使用(最详解)

目录 前言 一、6种常用加密方案 1.Base64加密 2.MD5加密&#xff08;不可逆&#xff09; 3.sha256加密 4.sha1加密&#xff08;相比于MD5 安全性高&#xff0c;但是 速度慢&#xff09; 5.AES加密 6.字符串的编码和解码 二、结语 往期回顾 前言 相信大家在工作或面试…

windbg调试.net程序知识快速参考

最近因团队下一个开发工程师的WPF应用存在偶尔卡顿的现象&#xff0c;重新温习了下windbg的知识&#xff0c;此次记录备忘下&#xff0c;以下是整理的思维导图&#xff0c;有点乱&#xff0c;哈哈。 FAQ 运行!address -summary时&#xff0c;提示错误 ntdll.dll not found 查过…

雾锁王国Enshrouded服务器CPU内存配置怎么选择?

雾锁王国/Enshrouded服务器CPU内存配置如何选择&#xff1f;阿里云服务器网aliyunfuwuqi.com建议选择8核32G配置&#xff0c;支持4人玩家畅玩&#xff0c;自带10M公网带宽&#xff0c;1个月90元&#xff0c;3个月271元&#xff0c;幻兽帕鲁服务器申请页面 https://t.aliyun.com…

LightDB24.1 lt_package系统表字段 pkgboby一行长度限制为8160

背景 oracle plsql支持创建package和package boby&#xff0c;且支持的长度超过postgres所限定的8192个字节的长度&#xff08;实际上postgres出去元组头部分所占的空间&#xff0c;长度肯定是小于8192字节的&#xff09;。目前遇到的情况就是oracle环境下包的长度远远大于Li…

打卡今天内存管理

首先我们的体系结构是这样的&#xff0c;根据小林coding 来写的笔记 寄存器&#xff0c;速度非常快&#xff0c; 32位的可以存4个字节&#xff0c;64位的可以存8个字节 多少位只是在32位以上 地址空间 分为两种地址空间 &#xff1a; 物理&#xff0c;逻辑 地址空间 地址空间…

选择排序,冒泡排序,插入排序,快速排序及其优化

目录 1 选择排序 1.1 原理 1.2 具体步骤 1.3 代码实现 1.4 优化 2 冒泡排序 2.1 原理 2.2 具体步骤 2.3 代码实现 2.4 优化 3 插入排序 3.1 原理 3.2 具体步骤 3.3 代码实现 3.4 优化 4. 快速排序 4.1 原理 4.2 具体步骤 4.3 代码实现 4.4 优化 为了讲…

源码和包管理器安装U-Boot tools

源码和包管理器安装U-Boot tools U-Boot&#xff08;Universal Bootloader&#xff09;是一个开源的嵌入式系统引导加载程序&#xff0c;用于引导嵌入式系统&#xff0c;如单板计算机、嵌入式开发板等。U-Boot 提供了一种灵活的引导解决方案&#xff0c;支持多种处理器架构和嵌…