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

Java8 新特性stream、forEach常用方法总结

1、去重

List<Long> list = new ArrayList<>();list.add(1L);list.add(2L);list.add(3L);list.add(3L);list.stream().distinct().collect(Collectors.toList());

2、筛选出符合条件的数据

1)单条件筛选

筛选出性别为男的学生:

List<Student> studentList = list.stream().filter(
s->s.getGender().equals("1")
).collect(Collectors.toList());

2 )多条件筛选

筛选出性别为男并且身高为 1 米 8 以上的学生:

List<Student> studentList = list.stream().filter(
s->s.getGender().equals("1")&& s.getHeight()>=180
).collect(Collectors.toList());

3、forEach遍历列表的每一个元素

import java.util.Arrays;public class Test{public static void main(String[] args){Arrays.asList("测试1", "测试2", "测试3").forEach(System.out::println);}
}

上面这段代码中,我们使用了 forEach 方法遍历列表的每一个元素,并把元素传递给 System.out.println() 方法打印输出到屏幕上。

4、forEach设置多个属性值

 list.forEach((entity) ->{entity.setCreateTime(new Date());entity.setCreateUser(user.getUserId());                         });

5、提取某一列(以name为例)

对象类

@Data
public class StudentInfo implements Serializable{//名称private String name;//性别 true男 false女private Boolean gender;//年龄private Integer age;//身高private Double height;//出生日期private LocalDate birthday;
}

测试数据

//测试数据,请不要纠结数据的严谨性
List<StudentInfo> studentList = new ArrayList<>();
studentList.add(new StudentInfo("李小明",true,18,1.76,LocalDate.of(2001,3,23)));
studentList.add(new StudentInfo("张小丽",false,18,1.61,LocalDate.of(2001,6,3)));
studentList.add(new StudentInfo("王大朋",true,19,1.82,LocalDate.of(2000,3,11)));
studentList.add(new StudentInfo("陈小跑",false,17,1.67,LocalDate.of(2002,10,18)));

提取数据

//输出List
System.out.println(studentList);
//从对象列表中提取一列(以name为例)
List<String> nameList = studentList.stream().map(StudentInfo::getName).collect(Collectors.toList());
//提取后输出name
nameList.forEach(s-> System.out.println(s));

6、求和

List<Apple>

//计算 总金额
BigDecimal discountAll = list.stream().map(Apple::getDiscount).reduce(BigDecimal.ZERO, BigDecimal::add);
System.err.println("discount:"+discount);

List<Map<String, Object>>

BigDecimal discountAll = list.stream().map(m -> m.get("discount") == null ? BigDecimal.ZERO : new BigDecimal(m.get("discount").toString())).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2,BigDecimal.ROUND_DOWN);

未完待续..........

相关文章:

Java8 新特性stream、forEach常用方法总结

1、去重 List<Long> list new ArrayList<>();list.add(1L);list.add(2L);list.add(3L);list.add(3L);list.stream().distinct().collect(Collectors.toList()); 2、筛选出符合条件的数据 1&#xff09;单条件筛选 筛选出性别为男的学生&#xff1a; List<…...

C语言4 运算符

目录 1. 算术运算符 2. 关系运算符 3. 逻辑运算符 4. 位运算符 5. 赋值运算符 6. 自增和自减运算符 7. 条件运算符&#xff08;三元运算符&#xff09; 8. 逗号运算符 9. sizeof 运算符 10. 取地址和解引用运算符 11.运算符的优先级 1. 算术运算符 (加法)&#xff1…...

【数据分析】Pandas_DataFrame读写详解:案例解析(第24天)

系列文章目录 一、 读写文件数据 二、df查询数据操作 三、df增加列操作 四、df删除行列操作 五、df数据去重操作 六、df数据修改操作 文章目录 系列文章目录前言一、 读写文件数据1.1 读写excel文件1.2 读写csv文件1.3 读写mysql数据库 二、df查询数据操作2.1 查询df子集基本方…...

quill编辑器使用总结

一、vue-quill-editor 与 quill 若使用版本1.0&#xff0c;这两个组件使用哪个都是一样的&#xff0c;无非代码有点偏差&#xff1b;若需要使用表格功能&#xff0c;必须使用 quill2.0 版本&#xff0c;因为 vue-quill-editor 不支持table功能。 二、webpack版本问题 在使用 q…...

快手矩阵管理系统:引领短视频运营新潮流

在短视频行业蓬勃发展的今天&#xff0c;如何高效运营和优化内容创作已成为企业和创作者关注的焦点。快手矩阵管理系统以其强大的核心功能&#xff0c;为短视频内容的创作、发布和管理提供了一站式解决方案。 智能创作&#xff1a;AI自动生成文案 快手矩阵管理系统的智能创作…...

文心一言:探索AI写作的新境界

在人工智能飞速发展的今天&#xff0c;AI写作助手已经成为许多写作者、内容创作者和营销专家的重要工具。"文心一言"作为一个先进的AI写作平台&#xff0c;以其强大的语言理解和生成能力&#xff0c;为用户提供了从文本生成到编辑、优化等一系列服务。本文将介绍如何…...

认证资讯|Bluetooth SIG认证

在当今高度互联的世界中&#xff0c;无线技术的普及已经成为我们生活和工作中不可或缺的一部分。作为领先的无线通信技术之一&#xff0c;Bluetooth技术以其稳定性、便捷性和广泛的应用场景而备受青睐。然而&#xff0c;要想在激烈的市场竞争中脱颖而出&#xff0c;获得Bluetoo…...

我国静止无功发生器(SVG)市场规模逐渐扩大 高压SVG为主流产品

我国静止无功发生器&#xff08;SVG&#xff09;市场规模逐渐扩大 高压SVG为主流产品 静止无功发生器&#xff08;SVG&#xff09;又称为静止同步补偿器、先进静止补偿器、静止调相机等&#xff0c;是利用全控型功率器件组成的桥式变流器来实现动态无功调节的一种先进无功自动补…...

【漏洞复现】用友U8 CRM downloadfile 任意文件读取漏洞

0x01 产品简介 用友U8 CRM客户关系管理系统是一款专业的企业级CRM软件&#xff0c;旨在帮助企业高效管理客户关系、提升销售业绩和提供优质的客户服务。 0x02 漏洞概述 用友 U8 CRM客户关系管理系统 /pub/downloadfile.php接囗处存在任意文件读取漏洞,未经身份验证的远程攻击…...

计算机网络 | 期末复习

物理层&#xff1a; 奈氏准则&#xff1a;带宽&#xff08;w Hz&#xff09;&#xff0c;在不考虑噪音的情况下&#xff0c;最大速率&#xff08;2W&#xff09;码元/秒 信噪比S/N&#xff1a;以分贝&#xff08;dB&#xff09;为度量单位。信噪比&#xff08;dB&#xff09;…...

动手实操微软开源的GraphRAG

微软在今年4月份的时候提出了GraphRAG的概念&#xff0c;然后在上周开源了GraphRAG,Github链接见https://github.com/microsoft/graphrag,截止当前&#xff0c;已有6900Star。 安装教程 官方推荐使用Python3.10-3.12版本&#xff0c;我使用Python3.10版本安装时&#xff0c;在…...

【网络安全】实验七(ISA防火墙的规则设置)

一、实验目的 二、配置环境 打开两台虚拟机&#xff0c;并参照下图&#xff0c;搭建网络拓扑环境&#xff0c;要求两台虚拟机的IP地址要按照图中的标识进行设置&#xff0c;并根据搭建完成情况&#xff0c;勾选对应选项。注&#xff1a;此处的学号本人学号的最后两位数字&…...

实验代码结构介绍

提高模型复用性&#xff0c;让模型对应的配置更加清晰&#xff0c;代码书写条理 学习自https://zhuanlan.zhihu.com/p/409662511 Project ├── checkpoints # 存放模型 ├── data # 定义各种用于训练测试的数据集 ├── eval.py # 测试代码 ├── loss.py # 定义的…...

Java多线程不会?一文解决——

方法一 新建类如MyThread继承Thread类重写run()方法再通过new MyThread类来新建线程通过start方法启动新线程 案例&#xff1a; class MyThread extends Thread {public MyThread(String name) {super(name);}Overridepublic void run() {for(int i0;i<10;i){System.out.…...

Mac上pyenv的安装及使用

Mac上pyenv的安装及使用 安装 brew update brew install pyenv 报错 git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallowgit -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow那就执行这2句 还报错 git -C /…...

【SpringBoot】IDEA查看spring bean的依赖关系

前因&#xff1a;研究springcloud config组件时&#xff0c;我发现config-server包下的EnvironmentController不在扫描的包路径下却可以响应客户端的请求&#xff0c;这引起了我的注意&#xff0c;我的问题是&#xff1a;EnvironmentController是怎么被添加进bean工厂的。本章就…...

项目代码优化(1)——下单逻辑

给一个电商开发的系统排查&#xff0c;发现漏洞很多。很多经验不够的开发者很容易忽视的逻辑错误陷阱。在给一个项目做二次开发时候&#xff0c;检测到的相关经典案例。这里整理支付和产品相关的逻辑&#xff0c;方便后续查看。&#xff0c;这里进行一些简单的逻辑漏洞梳理与修…...

探索 WebKit 的缓存迷宫:深入理解其高效缓存机制

探索 WebKit 的缓存迷宫&#xff1a;深入理解其高效缓存机制 在当今快速变化的网络世界中&#xff0c;WebKit 作为领先的浏览器引擎之一&#xff0c;其缓存机制对于提升网页加载速度、减少服务器负载以及改善用户体验起着至关重要的作用。本文将深入探讨 WebKit 的缓存机制&am…...

JVM:介绍

文章目录 一、什么是JVM二、JVM的功能1、解释和运行2、内存管理3、即时编译 三、常见的JVM四、Java虚拟机规范五、HotSpot发展历程 一、什么是JVM JVM的全称为Java Virtual Machine&#xff0c;Java虚拟机。本质上是一个运行在计算机上的程序&#xff0c;职责是运行Java字节码…...

和鲸“101”计划领航!和鲸科技携手北中医,共话医学+AI 实验室建设及创新人才培养

为进一步加强医学院校大数据管理与应用、信息管理与信息系统&#xff0c;医学信息工程等专业建设&#xff0c;交流实验室建设、专业发展与人才培养经验&#xff0c;6 月 22 日&#xff0c;由北京中医药大学&#xff08;简称“北中医”&#xff09;主办&#xff0c;上海和今信息…...

从ResNet到ASPP:手把手教你用PyTorch复现DeepLabv3+的Encoder模块(含代码详解)

从ResNet到ASPP&#xff1a;手把手教你用PyTorch复现DeepLabv3的Encoder模块&#xff08;含代码详解&#xff09; 在语义分割领域&#xff0c;DeepLabv3以其出色的性能和清晰的架构设计成为众多研究者和工程师的首选方案。本文将带您深入探索其核心组件——Encoder模块的实现细…...

Spring Boot 3.x面试全攻略:自动配置+事务+AOT,2026最新考点

文章目录一、开场&#xff1a;Spring Boot面试&#xff0c;你真的准备好了吗&#xff1f;二、自动配置&#xff1a;从"黑魔法"到"透明厨房"2.1 面试第一问&#xff1a;自动配置到底咋实现的&#xff1f;2.2 3.5版本新考点&#xff1a;TaskExecutor名称变更…...

GHelper:华硕笔记本性能优化的轻量解决方案 - 告别Armoury Crate臃肿体验

GHelper&#xff1a;华硕笔记本性能优化的轻量解决方案 - 告别Armoury Crate臃肿体验 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Fl…...

基于YOLOV8的车辆检测系统:快速上手与实用功能

基于YOLOV8的车辆检测系统 基于深度学习的车辆检测系统有数据集 模型已经训练好 直接用即可 报告 30r 就是售价 包搭配环境 远程运行跑通程序 本项目已经训练好模型&#xff0c;配置好环境可直接使用&#xff0c;运行效果见图像&#xff08;可找我要演示视频&#xff09; 项…...

Factory IO + S7-PLCSIM V18 仿真避坑指南:如何解决传感器信号丢失和传送带卡料问题

Factory IO与S7-PLCSIM V18工业仿真实战&#xff1a;传感器优化与传送带故障排除指南 在工业自动化仿真领域&#xff0c;Factory IO与西门子S7-PLCSIM V18的组合已经成为工程师验证智能工厂逻辑的高效工具链。这套解决方案能够完整模拟从物料加工到仓储的完整产线&#xff0c;但…...

告别FTP客户端工具:手把手教你用Qt写一个带进度条的FTP上传器

用Qt打造企业级FTP上传模块&#xff1a;从进度监控到断点续传实战 在工业自动化、医疗影像传输等专业领域&#xff0c;文件传输的可靠性和可视化程度直接影响用户体验。传统FTP客户端往往功能单一&#xff0c;无法与企业自有系统深度集成。本文将带你用Qt的QNetworkAccessManag…...

终极解决ComfyUI-Florence2模型加载问题的完整指南

终极解决ComfyUI-Florence2模型加载问题的完整指南 【免费下载链接】ComfyUI-Florence2 Inference Microsoft Florence2 VLM 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Florence2 如果您正在使用ComfyUI-Florence2视觉语言模型却遇到了加载失败的问题&#…...

如何快速打造现代化Windows提示界面:ModernFlyouts终极指南

如何快速打造现代化Windows提示界面&#xff1a;ModernFlyouts终极指南 【免费下载链接】ModernFlyouts A modern Fluent Design replacement for the old Metro themed flyouts present in Windows. 项目地址: https://gitcode.com/gh_mirrors/mo/ModernFlyouts 你是否…...

2026年局部放电检测技术:全场景应用效能分析与绝缘诊断演进报告

摘要在2026年全球能源互联网纵深发展的背景下&#xff0c;电力系统及关键基础设施的绝缘安全已由“被动响应”全面转向“主动预警”。局部放电&#xff08;Partial Discharge, PD&#xff09;检测作为绝缘诊断的“哨兵”技术&#xff0c;其在多元化场景中的表现已成为衡量电力运…...

串口通讯参数设置全解析:从波特率到流控制的完整配置流程

串口通讯参数设置全解析&#xff1a;从波特率到流控制的完整配置流程 在嵌入式系统和硬件调试领域&#xff0c;串口通讯就像设备间的"普通话"&#xff0c;而参数配置则是确保双方能顺畅交流的语法规则。想象一下&#xff0c;当你需要让树莓派与传感器"对话&quo…...