溫馨提示×

怎么在Java中按兩個字段排序

小億
253
2024-06-11 16:03:29
欄目: 編程語言

要在Java中按兩個字段排序,可以使用Comparator接口來實現自定義排序規則。下面是一個示例代碼,演示如何按兩個字段進行排序:

假設有一個Person類,包含name和age兩個字段,現在要按照name字段和age字段進行排序。

import java.util.Comparator;

class Person {
    String name;
    int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    @Override
    public String toString() {
        return "Person{name='" + name + "', age=" + age + "}";
    }
}

public class Main {
    public static void main(String[] args) {
        List<Person> persons = new ArrayList<>();
        persons.add(new Person("Alice", 25));
        persons.add(new Person("Bob", 30));
        persons.add(new Person("Alice", 20));
        
        //按照name字段升序排序,如果name相同,則按照age字段升序排序
        persons.sort(Comparator.comparing(Person::getName).thenComparing(Person::getAge));
        
        for (Person person : persons) {
            System.out.println(person);
        }
    }
}

在上面的代碼中,我們使用Comparator.comparing方法來按照name字段排序,然后使用thenComparing方法來按照age字段排序。這樣就可以實現按照兩個字段進行排序的功能。

通過實現Comparator接口的compare方法,可以實現更復雜的排序規則,滿足不同的需求。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女