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 中。

相关推荐
菠萝加点糖6 分钟前
Maven 坐标系统说明
java·maven
hm宋12 分钟前
Canal 升级 jar 包操作文档(以升级 FastJSON 为例)
java·canal·jar
后台模板学习19 分钟前
学习的心态高频面试题
java·数据库·学习
用户31268748772043 分钟前
线程池到底怎么管理线程的?从 ThreadPoolExecutor 到拒绝策略全链路拆解
java
cpolar技术支持1 小时前
Kafka Streams 窗口统计怎么验收:本地跑订单流聚合,用 cpolar 给同事看只读结果页
java·docker·kafka·cpolar·kafka streams
爱读源码的大都督1 小时前
DeepSeek面试官问:生产RAG系统回答不准确,该如何定位和优化?这样回答,能让面试官当场给你Offer!
java·后端·python
杨运交2 小时前
[069][公共模块]Spring Boot 全局异常处理与参数校验实战(下):校验异常精细化处理与 WebFlux 适配
java·spring boot·后端
Raas1002 小时前
MAI Gateway(魔芋企业级AI网关)对比分析:AI网关和OpenRouter区别?企业级能力差距一览
java·服务器·网络·人工智能·gateway·ai网关·mai gateway
APItesterCris2 小时前
告别人工盯品!借助 Open‑Claw 快速搭建电商商品全自动监控与数据分析系统(完整实操代码)
java·大数据·前端·数据库
青山木2 小时前
Hot 100 --- 跳跃游戏 II
java·数据结构·算法·leetcode·贪心算法