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

从 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;
    }

    @Override
    public String toString() {
        return "Employee{name='" + name + "', salary=" + salary + "}";
    }
}

public class Main {
    public static void main(String[] args) {
        // 创建一个包含自定义对象的 List
        List<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 中。

相关推荐
C雨后彩虹5 小时前
机器人活动区域
java·数据结构·算法·华为·面试
a3158238066 小时前
Android Framework开发知识点整理
android·java·linux·服务器·framework·android源码开发
毕设源码-朱学姐6 小时前
【开题答辩全过程】以 个人健康管理系统为例,包含答辩的问题和答案
java·spring boot
局外人Inside6 小时前
PostProcessingBeanDeserializer 使用指南
java
郑州光合科技余经理6 小时前
基于PHP:海外版同城O2O系统多语言源码解决方案
java·开发语言·git·spring cloud·uni-app·php·uniapp
IT_Octopus7 小时前
Java GZip 压缩实践 +实践思考 +进一步压榨性能和存储方案思考:Protobuf+ GZip
java·spring boot
越来越无动于衷7 小时前
HTTP 文件服务器 Windows 开机自启动全维度总结
服务器·windows·http
毕设源码-郭学长7 小时前
【开题答辩全过程】以 高校教材大管家系统为例,包含答辩的问题和答案
java·spring boot
Gavin在路上7 小时前
DDD之用事件风暴重构“电商订单履约”(11)
java·前端·重构
AnAnCode8 小时前
ECS 架构 (Entity Component System) - 数据导向编程快速入门
java·架构·游戏服务器