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

Stream强化

使用stream求list的对象属性的和

假设有一个Student类,其中有一个属性是score,可以通过以下代码求出List<Student>中score的和:

List<Student> students = new ArrayList<>(); // 添加学生对象到List中 
int sum = students.stream().mapToInt(Student::getScore).sum();

这里使用了mapToInt方法将每个Student对象映射成其score属性的值,然后调用sum方法求和。

stream返回一个map集合

可以使用以下代码将List<Student>转化为Map<String, Integer>:

Map<String, Integer> nameScoreMap = students.stream() .collect(Collectors.toMap(Student::getName, Student::getScore));

这里使用了Collectors.toMap方法将List转化为Map,其中getName方法返回Student的名字,getScore方法返回Student的score属性值。

stream添加list的对象

List<Student> students = Stream.of(
        new Student("Tom", 80),
        new Student("Mary", 90),
        new Student("John", 75))
        .collect(Collectors.toList());
这里使用了Stream.of方法创建一个流,其中包含三个新建的Student对象,然后调用collect方法将流转化为List<Student>。

stream排序

//正序排列slist=list.stream().sorted(Comparator.comparing(Student::getAge)).collect(Collectors.toList());
//倒序排列
list = list.stream().sorted(Comparator.comparing(Student::getAge).reversed()).collect(Collectors.toList());

按自然升序对集合进行排序

list.stream().sorted();

自然序降序使用Comparator提供reverseOrder()方法

list.stream().sorted(Comparator.reverseOrder());

还可以使用Java8的lambda表达式和Comparator接口来实现这个排序功能,代码如下:Collections.sort(openTimeList, Comparator.comparing(o -> o.getWorkDay()));这段代码使用了Comparator.comparing方法来创建一个Comparator对象,主要是根据OpenTime对象的workDay属性来进行排序,通过lambda表达式o -> o.getWorkDay()来指定workDay属性的取值方式,最后调用Collections.sort方法来进行排序。

相关文章:

Stream强化

使用stream求list的对象属性的和 假设有一个Student类&#xff0c;其中有一个属性是score&#xff0c;可以通过以下代码求出List<Student>中score的和&#xff1a; List<Student> students new ArrayList<>(); // 添加学生对象到List中 int sum student…...

第一部分-基础篇-第一章:PSTN与VOIP(下篇)

文章目录 序言上一篇文章&#xff1a;1.6 电路交换与分组交换1.6.1 电路交换1.6.2 分组交换 1.7 VoIP1.8 IMS1.8.1 什么是IMS1.8.2 IMS的特点1.8.3 IMS核心网元&#xff08;1 &#xff09; CSCF&#xff08;2 &#xff09; MGCF&#xff08;3 &#xff09; IM-MGW&#xff08;5…...

《汇编语言》- 读书笔记 - 第4章-第一个程序

《汇编语言》- 读书笔记 - 第4章-第一个程序 4.1 一个源程序从写出到执行的过程4.2 源程序程序 4.11. 伪指令1.1 segment ends 声明段1.2 end 结束标记1.3 assume 关联 2. 源程序中的“程序”3. 标号4. 程序的结构5. 程序返回6. 语法错误和逻辑错误 4.3 编辑源程序4.4 编译4.5 …...

AI工具 ChatGPT-4 vs Google Bard , PostgreSQL 开发者会pick谁?

在人工智能 (AI) 进步的快节奏世界中&#xff0c;开发人员正在寻找最高效和突破性的解决方案来加快和提高他们的工作质量。对于 PostgreSQL 开发人员来说&#xff0c;选择理想的 AI 支持的工具以最专业的方式解决他们的查询至关重要。 近年来&#xff0c;人工智能工具的普及率…...

【网络】基础知识1

目录 网络发展 独立模式 网络互联 局域网LAN 广域网WAN 什么是协议 初识网络协议 协议分层 OSI七层模型 TCP/IP四层&#xff08;或五层&#xff09;模型 OSI和TCP/IP对比 网络传输流程 什么是报头 局域网通信原理 同网段的主机通讯 跨网段的主机通讯 数据包封装…...

chatgpt赋能python:Python倒序range的完整指南

Python倒序range的完整指南 Python是一种高级编程语言&#xff0c;很多人认为它非常容易学习和使用。其中一个非常有用的功能是range()函数&#xff0c;可以生成数字序列。然而&#xff0c;有时候我们需要以相反的顺序生成这个数字序列&#xff0c;这时候倒序range()函数就派上…...

工作笔记!

搭建tomcat Tomcat详细使用教程 tomcat配置用戶名和密碼 tomcat设置外网能访问_tomcat让别人通过网络访问 如何在windows开端口_windows开放端口命令 tomcat进Manager 403 Access Denied You are not authorized to view this page_tomcat报错you are not_ferry_cai 关于依…...

java设计模式之享元设计模式的前世今生

享元设计模式是什么&#xff1f; 享元设计模式是一种结构型设计模式&#xff0c;它的目的是在大规模重复使用相似对象时提高内存利用率和性能。它通过共享对象的公共部分来减少所需要的内存&#xff0c;从而在系统中同时存在更多的对象。 享元设计模式通过将对象分为可共享的内…...

RESTful:理解REST架构风格、RESTful API

一、REST架构风格 REST&#xff08;英文Representational State Transfer&#xff09;是一种基于客户端和服务器的架构风格&#xff0c;用于构建可伸缩、可维护的Web服务。REST的核心思想是&#xff0c;将Web应用程序的功能作为资源来表示&#xff0c;使用统一的标识符&#x…...

网络面试题:什么是 TCP/IP?

目录标题 什么是 TCP/IP?1) 网络接口层:2) 网络层:3) 传输层:4) 应用层: 2.数据包3.网络接口层4.网络层1) IP:2)地址解析协议 ARP3)子网 5 传输层1&#xff09;UDP&#xff1a;2&#xff09;TCP&#xff1a; 6 应用层运行在TCP协议上的协议&#xff1a;运行在UDP协议上的协议&…...

毫米波雷达模块在自动驾驶系统中的关键功能

随着自动驾驶技术的快速发展&#xff0c;毫米波雷达模块作为一项关键技术&#xff0c;为自动驾驶系统提供了重要的感知和决策能力。毫米波雷达模块通过实时探测和跟踪周围环境中的车辆、行人和障碍物&#xff0c;提供精确的距离和速度信息&#xff0c;帮助自动驾驶车辆做出准确…...

关于开发中对端口(port)的几点理解

一、服务端的端口是固定的&#xff0c;客户端的端口是随机的 客户端端口是随机的&#xff0c;比如访问百度&#xff0c;系统为浏览器分配了个端口1024。过一会重开电脑&#xff0c;访问了新浪&#xff0c;可能还是用1024端口&#xff0c;我不关浏览器&#xff0c;还要再开一个浏…...

qt 5.14.2 arm 交叉环境搭建过程

主要参考 https://blog.csdn.net/anmo_moan/article/details/126960630 https://blog.csdn.net/a648642694/article/details/89302843 1 下载编译器&设置 1.1 gcc-linaro-12.2.1-2023.01-x86_64_arm-linux-gnueabihf.tar.xz 下载编译器 1.2. /home/zsf/arm linaro 压缩包…...

apt remove purge的区别 删除包的同时删除配置文件

1、apt remove purge的区别 查看 man apt apt remove&#xff1a;删除软件包&#xff0c;不删除配置文件。这么做的目的是将来再次安装这个包时 原来的配置文件会自动加载供使用。也可以避免误删除包&#xff0c;配置文件还在的话&#xff0c;重新安装一次软件包就可以恢复到…...

电商|跨境电商如何选择API接口和ERP

随着跨境电商企业规模升级&#xff0c;平台提供的卖家后台系统往往无法满足有一定规模的店铺和独立站卖家。日常运营中&#xff0c;中大型跨境电商往往面临以下几种挑战&#xff1a; 多店铺、多平台订单管理难 库存数据集成难&#xff0c;经常缺货 物流管理难&#xff0c;手…...

测试人员的启蒙指南

文章目录 一. 了解测试1. 生活中的测试场景2. 什么是软件测试3. 实战练习 二. 软件测试和软件开发的区别三. 软件测试和软件调试的区别四. 软件测试的发展五. 软件测试的岗位六. 一个优秀的软件测试人员具备的素质 本篇中介绍测试人员是干什么的, 起到启蒙和了解的作用, 重点是…...

Linux工具:vim常用快捷键

1、拷贝行(一般模式下) 拷贝当前行 将光标移动到指定行&#xff0c;yy 移动到想要粘贴的行&#xff0c;p 即可把拷贝的行粘贴到该行下方 拷贝n行 将光标移动到指定行&#xff0c;比如拷贝5行&#xff0c;5yy 移动到想要粘贴的行&#xff0c;p 即可把拷贝的几行粘贴到该行下方…...

TA-lib第三方库安装问题

因为学习的需要&#xff0c;用到Talib库做写指标分析&#xff0c;但是百度了好久&#xff0c;说是去要某某网站下载对应版本的文件进行本地安装&#xff0c;但是把…404 Not found 然后通过查找&#xff0c;Ta-lib库的安装已经迁移到这里了 https://github.com/TA-Lib/ta-lib-p…...

接口测试的测试要点

接口测试的测试要点&#xff0c;你知道都有哪些吗&#xff1f; 接口测试是软件测试中的重要组成部分&#xff0c;它的目的是评估接口的质量和可靠性&#xff0c;以保证系统的正常运行。在进行接口测试时&#xff0c;必须要考虑到以下几个方面&#xff1a; 测试用例的编写 测试…...

直流电机 PID 控制系统仿真研究(Simulink实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

ZYNQ中断避坑指南:PL端信号线如何正确‘连线’到PS端处理函数?

ZYNQ中断系统深度解析&#xff1a;从硬件信号到软件响应的全链路实践 在嵌入式系统开发中&#xff0c;中断处理是实时响应的核心机制。对于ZYNQ这种集成了ARM处理器(PS)和可编程逻辑(PL)的异构计算平台&#xff0c;其中断系统既有传统处理器的特性&#xff0c;又具备FPGA灵活定…...

如何用Untrunc拯救损坏视频?2025年终极MP4修复工具完全指南

如何用Untrunc拯救损坏视频&#xff1f;2025年终极MP4修复工具完全指南 【免费下载链接】untrunc Restore a damaged (truncated) mp4, m4v, mov, 3gp video. Provided you have a similar not broken video. 项目地址: https://gitcode.com/gh_mirrors/unt/untrunc 当你…...

如何高效实现Windows自动化鼠标点击:AutoClicker完整实战指南

如何高效实现Windows自动化鼠标点击&#xff1a;AutoClicker完整实战指南 【免费下载链接】AutoClicker AutoClicker is a useful simple tool for automating mouse clicks. 项目地址: https://gitcode.com/gh_mirrors/au/AutoClicker AutoClicker是一款专业的Windows桌…...

SpringBoot WebClient 介绍

目录一、什么是 WebClient&#xff1f;二、 WebClient 能解决什么问题&#xff1f;三、WebClient 和 RestTemplate 的区别四、WebClient 的核心优势1. 非阻塞&#xff08;Non-Blocking&#xff09;2. 支持异步3. 链式 API 更现代五、WebClient 的核心对象六、Mono 和 Flux 是什…...

鼎讯AM-601光纤熔接机:交通通信建设与维护的可靠伙伴

在铁路、高速公路等交通基础设施的智能化建设中&#xff0c;稳定高效的光纤网络是指挥调度、安全监控等核心系统运行的生命线。鼎讯AM-601光纤熔接机&#xff0c;作为一款专为严苛环境设计的六马达便携式熔接设备&#xff0c;正成为保障这些关键通信链路畅通无阻的可靠选择。无…...

终极Windows键盘重映射解决方案:SharpKeys完全指南

终极Windows键盘重映射解决方案&#xff1a;SharpKeys完全指南 【免费下载链接】sharpkeys SharpKeys is a utility that manages a Registry key that allows Windows to remap one key to any other key. 项目地址: https://gitcode.com/gh_mirrors/sh/sharpkeys 还在…...

工业级SCADA革命:FUXA零代码可视化平台如何重塑工业监控决策

工业级SCADA革命&#xff1a;FUXA零代码可视化平台如何重塑工业监控决策 【免费下载链接】FUXA Web-based Process Visualization (SCADA/HMI/Dashboard) software 项目地址: https://gitcode.com/gh_mirrors/fu/FUXA 在工业4.0和数字化转型浪潮中&#xff0c;传统SCADA…...

5分钟掌握文件完整性验证:HashCalculator终极免费批量哈希计算工具指南

5分钟掌握文件完整性验证&#xff1a;HashCalculator终极免费批量哈希计算工具指南 【免费下载链接】HashCalculator 哈希值计算工具&#xff0c;批量计算/批量校验/查找重复文件/改变哈希值等&#xff0c;支持集成到系统右键菜单 项目地址: https://gitcode.com/gh_mirrors/…...

B站视频缓存转换终极指南:5秒完成m4s到MP4的无损转换

B站视频缓存转换终极指南&#xff1a;5秒完成m4s到MP4的无损转换 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经在B站缓存了珍贵的教…...

IDE 重构(Refactoring)详解 + 实例代码

IDE 重构&#xff08;Refactoring&#xff09;详解 实例代码 重构是指在不改变代码外部行为的前提下&#xff0c;对代码内部结构进行调整、优化&#xff0c;使代码更易读、易维护、易扩展的过程。IDE&#xff08;集成开发环境&#xff09;是重构的最强助手&#xff0c;它能自动…...