Java——如何使用Stream替换掉List<Student>中符合要求的元素

news/2025/1/11 10:00:29/

使用Stream替换掉List中符合要求的元素

要使用Stream流替换掉List中符合特定条件的元素,您可以使用Stream的map()方法对每个元素进行映射,并使用collect()方法将映射后的元素收集到一个新的List中。

示例代码:

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;public class Main {public static void main(String[] args) {List<Student> students = new ArrayList<>();students.add(new Student("John", 20));students.add(new Student("Alice", 25));students.add(new Student("Bob", 22));students.add(new Student("Charlie", 30));// 使用Stream流替换掉年龄大于等于25的学生姓名List<Student> updatedStudents = students.stream().map(student -> {if (student.getAge() >= 25) {student.setName("Updated Name");}return student;}).collect(Collectors.toList());// 打印更新后的学生列表updatedStudents.forEach(System.out::println);}
}class Student {private String name;private int age;public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +'}';}
}

在上述示例中,我们定义了一个Student类来表示学生,其中包含姓名和年龄属性。我们创建了一个List对象,并将一些学生对象添加到列表中。

使用Stream流,我们可以调用stream()方法来获取List的流。然后,我们使用map()方法对流中的每个学生对象进行操作。在此示例中,我们使用Lambda表达式来检查学生对象的年龄是否大于等于25,如果是,则将姓名设置为"Updated Name"。如果不满足条件,就会保持原样。

最后,我们使用collect()方法将更新后的学生对象收集到一个新的List中,并使用forEach()方法将更新后的学生列表打印出来。

此示例中只是演示了如何使用Stream流替换掉List中符合条件的元素。可以根据具体需求进行自定义操作和替换逻辑。


http://www.ppmy.cn/news/1003879.html

相关文章

力扣 416. 分割等和子集

题目来源&#xff1a;https://leetcode.cn/problems/partition-equal-subset-sum/description/ C题解&#xff08;思路来源代码随想录&#xff09; &#xff1a; 背包问题有多种背包方式&#xff0c;常见的有&#xff1a;01背包、完全背包、多重背包、分组背包和混合背包等等。…

TiDB调研报告

TiDB系统调研指标说明 要求: 1、关于指标说明以及功能说明,需来自官方文档 2、功能以及查询的用例需要有具体的查询语句和数据,可以实际执行 大表数据存储支持 一亿行,10指标字段,10维度字段,每个维度字段10000维度基数 未测试完全,因为入库性能较差,入库三天才入…

Java记录一次生产CPU飙升查找原因

java项目:项目定制化产品的微服务,主要做查es的定时任务和报表统计,实时监控数据. 上线几天,cpu报警 看图: 排查思路: 七八个定时任务同时查es,可能造成的飙升,然后只能拿jstack分析,生产环境慎用. jstack是Java开发工具包中的一个命令行工具&#xff0c;用于生成Java虚拟机&…

ubuntu20.04驱动降级(从535降到525)

今天又重装系统了&#xff0c;这是一个悲伤的故事。 但更为悲伤的是装完系统之后无法在“软件和更新”的“附加驱动”去获得“专有驱动”&#xff0c;也就是本来可以直接从界面装nvidia-driver-525&#xff08;专有&#xff09;的选项不可用了&#xff08;都快把屏幕点烂了都没…

https请求异常引发(Received fatal alert: unrecognized_name):如何快速解决项目中问题?

总结思考&#xff1a;如何做一个出色的开发者&#xff1f; 首先我们要承认我们大部分程序员是应用开发&#xff0c;不是操作系统、协议、框架开发等这类底层开发者。 其一&#xff1a;是否能快速定位问题。如找到出现问题的代码&#xff0c;bug出现在哪一行&#xff0c;哪个应…

leetcode做题笔记52

n 皇后问题 研究的是如何将 n 个皇后放置在 n n 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回 n 皇后问题 不同的解决方案的数量。 思路一&#xff1a;回溯 int check(int* queens,int row,int col){for(int i0;i<row;i){if(…

leaflet移动端,地图放大到一定层级出现空白解决

记录解决办法&#xff1a; 在uniapp用leaflet加载了天地图&#xff0c;地图放大到一定层级后&#xff0c;地图就显示空白了。原因是leaflet地图放大层级超出&#xff0c;将不再请求地图瓦片。 解决&#xff1a; 官方文档&#xff1a; 代码&#xff1a; var shi new L.tile…

10倍提升效率,号称取代Elasticsearch?

[Manticore Search](https://github.com/manticoresoftware/manticoresearch/) 是一个使用 C 开发的高性能搜索引擎&#xff0c;创建于 2017 年&#xff0c;其前身是 Sphinx Search 。Manticore Search 充分利用了 Sphinx&#xff0c;显着改进了它的功能&#xff0c;修复了数百…