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

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.dtcms.com/a/29770.html

相关文章:

  • 服务器释放screen资源(Detached状态并不会释放资源)
  • C++ 设计模式 - 策略模式
  • 【SQL实验】触发器
  • 矩阵-矩阵置零
  • 并查集算法篇上期:并查集原理及实现
  • FreeSWITCH Alpine 安装
  • 【股票数据API接口35】如何获取股票当天分价成交占比数据之Python、Java等多种主流语言实例代码演示通过股票数据接口获取数据
  • 亚马逊的API服务怎么使用?
  • 力扣每日一题【算法学习day.131】
  • 【Erdas实验教程】009:非监督分类及分类后评价
  • TypeScript - 属性修饰符
  • Python 单例模式笔记
  • RFID测温技术:电力设备安全监测的新利器
  • 深入解析Textual库:打造现代化的终端用户界面(TUI)
  • 【Python爬虫(37)】解锁分布式爬虫:原理与架构全解析
  • 深入理解 Kafka 主题分区机制
  • JUC并发—9.并发安全集合四
  • Html5学习教程,从入门到精通,HTML5 元素语法知识点及案例代码(2)
  • 普通人使用生成式语言模型的几个阶段
  • thinkphp 框架 如何让某个接口不需要登录权限
  • Java中字符串按照反斜杠切分报错
  • 正则表达式常用记录
  • MyBatis在Spring配置文件中注册
  • Javascript网页设计案例:通过PDFLib实现一款PDF分割工具,分割方式自定义-完整源代码,开箱即用
  • Spring Boot日志配置与环境切换实战
  • python的if判断和循环语句(while循环和for循环)
  • 【Python爬虫(40)】分布式爬虫:数据一致性的破局之道
  • 《QT+PCL 第五章》点云特征-VFH
  • 如何教计算机识别视频中的人类动作
  • Spring Boot 中使用 @Transactional 注解配置事务管理