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

相关推荐
澈2078 小时前
二叉搜索树:高效增删查的秘诀
java·开发语言·算法
青云计划8 小时前
Spring
java·后端·spring
yychen_java8 小时前
深度解析电力交易系统的“硬核”战场
java·能源
无尽冬.8 小时前
个人八股之string字符串
java·开发语言·经验分享·后端·异世界
伯远医学9 小时前
Nat. Methods | 邻近标记技术:活细胞中捕捉分子互作的新利器
java·开发语言·前端·javascript·人工智能·算法·eclipse
RainCity9 小时前
Java Swing 自定义组件库分享(五)
java·笔记·后端
woniu_buhui_fei9 小时前
JVM垃圾回收
java·jvm
阿萨德528号9 小时前
Windows RabbitMQ 启动完整指南(附启动报错解决、如何以服务方式后台运行)
windows·rabbitmq·ruby
AC赳赳老秦9 小时前
文案策划提效:OpenClaw批量生成活动文案、宣传海报配文,适配不同渠道调性
java·大数据·服务器·人工智能·python·deepseek·openclaw
_codemonster9 小时前
系统分析师系列目录
java·网络·数据库