Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java中list对多个字段排序

作者:二分醒amor   发布日期:2026-06-27   浏览:71

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

class Person {
    private String name;
    private int age;
    private double salary;

    public Person(String name, int age, double salary) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public double getSalary() {
        return salary;
    }

    @Override
    public String toString() {
        return "Person{name='" + name + "', age=" + age + ", salary=" + salary + '}';
    }
}

public class Main {
    public static void main(String[] args) {
        List<Person> people = new ArrayList<>();
        people.add(new Person("Alice", 30, 5000.0));
        people.add(new Person("Bob", 25, 6000.0));
        people.add(new Person("Charlie", 35, 5500.0));

        // 按照年龄升序排序,如果年龄相同则按薪水降序排序
        people.sort(Comparator.comparingInt(Person::getAge)
                .thenComparingDouble(Person::getSalary, Comparator.reverseOrder()));

        // 输出排序后的结果
        people.forEach(System.out::println);
    }
}

解释说明:

  1. 类定义Person 类包含三个字段:nameagesalary。构造函数用于初始化这些字段,同时提供了获取字段值的 getter 方法。
  2. List 初始化:创建一个 ArrayList 来存储 Person 对象,并添加几个示例数据。
  3. 排序逻辑:使用 Comparator.comparingInt 按照 age 字段进行升序排序,然后使用 thenComparingDouble 按照 salary 字段进行降序排序(通过 Comparator.reverseOrder() 实现)。
  4. 输出结果:遍历排序后的列表并打印每个 Person 对象的信息。

这样可以实现对多个字段的复杂排序需求。

上一篇:java判断数组是否为空的方法

下一篇:java线程池使用完整代码

大家都在看

java url decode

java判断是windows还是linux

java原始数据类型

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java常用的设计模式有哪些

java list 查找

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站