要根据某个字段进行从大到小排序,可以使用Java 8引入的Stream API来实现。下面是一个示例代码:

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

public class Main {
    public static void main(String[] args) {
        List<Person> personList = new ArrayList<>();
        personList.add(new Person('John', 25));
        personList.add(new Person('Alice', 30));
        personList.add(new Person('Bob', 20));

        // 使用Stream进行排序
        List<Person> sortedList = personList.stream()
                .sorted(Comparator.comparingInt(Person::getAge).reversed())
                .toList();

        // 输出排序结果
        for (Person person : sortedList) {
            System.out.println(person.getName() + ' - ' + person.getAge());
        }
    }
}

class Person {
    private String name;
    private int age;

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

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

在上面的示例中,我们创建了一个Person类,包含姓名和年龄字段。然后创建了一个personList列表,添加了几个Person对象。

使用personList.stream()方法将List转换为Stream,然后调用sorted方法,传入一个Comparator,通过Comparator.comparingInt(Person::getAge).reversed()指定根据年龄字段进行排序,并使用reversed方法将排序顺序改为从大到小。

最后通过调用toList方法将排序后的Stream转换为List,并遍历输出排序结果。输出结果如下:

Alice - 30
John - 25
Bob - 20
Java List 使用 Stream API 按字段降序排序 - 完整代码示例

原文地址: https://www.cveoy.top/t/topic/b0IB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录