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

相关推荐
是三好几秒前
并发容器(Collections)
java·多线程·juc
jian110587 分钟前
java项目实战、pom.xml配置解释、pojo 普通java对象
java·开发语言·python
述雾学java25 分钟前
Spring Boot是什么?MybatisPlus常用注解,LambdaQueryWrapper常用方法
java·spring boot·后端
jinhuazhe201325 分钟前
maven 3.0多线程编译提高编译速度
java·maven
xosg1 小时前
HTMLUnknownElement的使用
java·前端·javascript
forestsea2 小时前
Java虚拟机面试题:内存管理(上)
java·开发语言
yueyekkx2 小时前
Ubuntu24.04 LTS安装java8、mysql8.0
java·mysql·ubuntu
若水uy2 小时前
静态分配动态绑定
java
程序员buddha2 小时前
SpringBoot多环境配置文件切换
java·spring boot·后端
Java小白笔记2 小时前
IDEA中创建SpringBoot项目没有Java8
java·spring boot·intellij-idea