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

相关推荐
Rain的Java大神之路12 小时前
[特殊字符]8年Java老兵转型AI Agent:90%的人挂在同一个坑,根本不用学Python!(万字实战复盘,建议收藏)
java·数据库·人工智能·后端·python·spring·ai编程
高级程序源12 小时前
springboot大学生体测系统72170-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·python·django·课程设计
IT研究室12 小时前
最新计算机毕业设计选题推荐-基于spring boot的文学名著分享系统-网站-文档指导-Java-springboot
java·spring boot·课程设计
denlaku12 小时前
JDK 13 新特性详解
java·开发语言
秋饼12 小时前
Java 后端企业级 LLM 网关实战:Spring Cloud Gateway 构建统一大模型接入层
java·ai·技术分享·后端开发
今年下半年13 小时前
【防重放】Spring Boot 通过自定义注解实现接口防重放
java·spring boot·自定义注解·防重放
WeiXin_DZbishe13 小时前
基于Node.js的马拉松赛事管理系统的设计与实现-计算机毕设 附源码【课程设计】90211
java·javascript·vue.js·python·php·课程设计
Wang's Blog13 小时前
Java 项目部署之 Docker工具快速入门: 使用 Docker 镜像命令练习
java·docker
企业数字化笔记13 小时前
多租户系统从哪里开始设计?租户身份、数据隔离、权限与套餐的整体方案
java·spring boot·后端·junit
tiger从容淡定是人生13 小时前
从 Gemini 的任务示例出发:AI 能否从知识中推导工作流?
java·人工智能·aigc·知识图谱·创业创新·零知识证明