当前位置: 首页 > article >正文

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

从 Java 8 开始,你可以使用 Stream API 对 List 进行排序,这种方式更加简洁和灵活。

以下是一个示例代码:

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


http://www.kler.cn/a/559652.html

相关文章:

  • 打破常规:用 Python Enum 管理常量的趣味之旅
  • 【计算机网络】传输层TCP协议
  • 详解 为什么 tcp 会出现 粘包 拆包 问题
  • MySQL数据库习题(选择题)
  • 蓝思科技赋能灵伴科技:AI眼镜产能与供应链双升级
  • 设计模式| 观察者模式 Observer Pattern详解
  • Python 网络爬虫入门与实践:从基础到高级技巧
  • Spring Boot 应用(官网文档解读)
  • 视频帧的划分与冗余信息去除的关系
  • 蓝桥杯好数
  • 冒泡排序(详解)c++
  • 大模型面试准备|Deepseek r1技术报告
  • ProfiNet转EtherNet/IP攻克罗克韦尔PLC与光伏电站监控系统连接难题的通讯配置技术
  • golang深度学习-基础篇
  • 51单片机-定时器中断
  • DeepSeek学习教程 从入门到精通pdf下载:快速上手 DeepSeek
  • 【SQL实验】触发器
  • 说一下HashMap的底层原理
  • ZLMediakit开源视频服务器——配置到本地服务器
  • 简识Kafka集群与RocketMQ集群的核心区别