Java List 自定义对象排序 Java 8 及以上版本使用 Stream API

devtools/2025/2/25 2:55:28/

从 Java 8 开始,你可以使用 Stream API 对 List 进行排序,这种方式更加简洁和灵活。

以下是一个示例代码:

java">import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;// 自定义对象类
class Employee {private String name;private double salary;public Employee(String name, double salary) {this.name = name;this.salary = salary;}public String getName() {return name;}public double getSalary() {return salary;}@Overridepublic String toString() {return "Employee{name='" + name + "', salary=" + salary + "}";}
}public class Main {public static void main(String[] args) {// 创建一个包含自定义对象的 ListList<Employee> employees = new ArrayList<>();employees.add(new Employee("Alice", 5000.0));employees.add(new Employee("Bob", 4000.0));employees.add(new Employee("Charlie", 6000.0));// 使用 Stream API 按工资升序排序List<Employee> sortedEmployees = employees.stream().sorted(Comparator.comparingDouble(Employee::getSalary)).collect(Collectors.toList());// 输出排序后的结果for (Employee employee : sortedEmployees) {System.out.println(employee);}}
}

在上述代码中,我们使用 Stream API 的 sorted 方法和 Comparator.comparingDouble 方法按工资升序对 List 进行排序,最后使用 collect 方法将排序后的元素收集到一个新的 List 中。


http://www.ppmy.cn/devtools/161478.html

相关文章

基于Java的实时数据流处理框架设计与实现

基于Java的实时数据流处理框架设计与实现 在大数据时代&#xff0c;实时数据流处理成为了数据分析与处理的重要组成部分。尤其是在需要快速响应的场景中&#xff0c;数据流处理显得尤为关键。本文将详细介绍如何设计与实现一个基于Java的实时数据流处理框架&#xff0c;并通过…

网络可靠性要求

目录 一、背景介绍 二、环路引发的危害 1、广播风暴 2、MAC 地址表震荡 三、STP生成树 1、STP的作用 2、STP工作过程 3、根桥选举 4、根端口选举 5、指定端口选举 6、BPDU报文分析 7、计时器 8、端口状态转化 总结 一、背景介绍 为了提高网络可靠性&#xff0c;交换网络…

设计模式之装饰器设计模式/包装设计模式

装饰器设计模式&#xff08;Decorator Pattern&#xff09; 也叫包装设计模式&#xff0c;属于结构型模式&#xff0c;它是作为现有的类的一个包装&#xff0c;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其结构 给对象增加功能&#xff0c;一般两种方式&#…

解决DeepSeek服务器繁忙问题的实用指南

目录 简述 1. 关于服务器繁忙 1.1 服务器负载与资源限制 1.2 会话管理与连接机制 1.3 客户端配置与网络问题 2. 关于DeepSeek服务的备用选项 2.1 纳米AI搜索 2.2 硅基流动 2.3 秘塔AI搜索 2.4 字节跳动火山引擎 2.5 百度云千帆 2.6 英伟达NIM 2.7 Groq 2.8 Firew…

mybatis从接口直接跳到xml的插件

在使用 MyBatis(包括 MyBatis-Plus)时,如果你希望从接口方法直接跳转到对应的 XML 映射文件中的 SQL 语句定义,可以借助一些开发工具或插件来实现这一功能。以下是几种常见的方法和插件推荐: 方法一:使用 IDE 内置功能 IntelliJ IDEA IntelliJ IDEA 提供了对 MyBatis …

计算机视觉算法

计算机视觉算法简介 计算机视觉(Computer Vision)作为人工智能的一个重要分支,致力于让计算机能够“看”并理解图像或视频中的内容。其应用领域广泛,从自动驾驶汽车、医疗影像分析到增强现实和安全监控等。随着深度学习技术的发展,计算机视觉已经取得了显著的进展,尤其是…

【AI】VS Code中使用GitHub Copilot

在VS Code中使用GitHub Copilot可以显著提升开发效率和代码质量&#xff0c;以下是其主要优势&#xff1a; 1. 代码自动补全 智能建议&#xff1a;Copilot能根据上下文提供代码补全建议&#xff0c;减少手动输入。 多语言支持&#xff1a;支持多种编程语言&#xff0c;适用于不…

rkipc main.c 中 rk_param_init函数分析

rk_param_init函数 这个函数是用来读取配置文件进行参数配置 这个函数在 luckfox-pico/project/app/rk_smart_door/smart_door/common/uvc/param/param.c 中 这个函数在main函数中被调用 //通过-c 配置文件路径 把配置文件传进来 case c:rkipc_ini_path_ optarg;//调用&am…