legongju.com
我们一直在努力
2025-01-16 14:08 | 星期四

如何使用Java sorted()函数进行多级排序

在Java中,你可以使用sorted()函数与Comparator结合实现多级排序

import java.util.*;

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

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

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

public class MultiLevelSortingExample {
    public static void main(String[] args) {
        List people = Arrays.asList(
                new Person("Alice", 30, 1200.0),
                new Person("Bob", 25, 1000.0),
                new Person("Charlie", 30, 1100.0),
                new Person("David", 28, 900.0)
        );

        // 按年龄升序排序,如果年龄相同则按薪水升序排序
        Comparator comparator = Comparator.comparingInt((Person p) -> p.age)
                                                   .thenComparingDouble(p -> p.salary);

        List sortedPeople = people.stream()
                                           .sorted(comparator)
                                           .collect(Collectors.toList());

        System.out.println("Multi-level sorted list:");
        for (Person person : sortedPeople) {
            System.out.println(person);
        }
    }
}

在这个示例中,我们首先创建了一个Person类,并定义了一些属性。然后,我们创建了一个包含Person对象的列表,并使用Stream API 和 sorted() 函数对其进行多级排序。

我们创建了一个Comparator,首先根据年龄进行升序排序,然后根据薪水进行升序排序。最后,我们将排序后的结果收集到一个新的列表中,并打印出来。

未经允许不得转载 » 本文链接:https://www.legongju.com/article/108861.html

相关推荐

  • Java编程:stdin的多线程处理

    Java编程:stdin的多线程处理

    在Java编程中,可以使用多线程来处理stdin(标准输入),以实现并发处理输入数据的功能。以下是一个简单的示例代码,演示了如何使用多线程处理stdin输入数据:

  • Java中如何实现声音的录制与播放

    Java中如何实现声音的录制与播放

    在Java中实现声音的录制与播放可以使用JavaSound API。以下是一个简单的示例代码:
    录制声音:
    import javax.sound.sampled.*; public class AudioRec...

  • Java sound编程实战技巧分享

    Java sound编程实战技巧分享

    在Java中实现音频处理和播放可以使用Java Sound API。下面是一些Java Sound编程的实战技巧: 使用AudioSystem类来获取音频输入和输出设备。可以使用getMixerInfo...

  • 如何在Java应用中集成声音功能

    如何在Java应用中集成声音功能

    在Java应用中集成声音功能可以使用Java内置的音频库javax.sound,以下是一些基本步骤: 导入javax.sound包:在代码中导入javax.sound包中的相关类。 import java...

  • Java sorted()函数处理空值的方式

    Java sorted()函数处理空值的方式

    在Java中,sorted()函数是用于对集合(如List、Set等)进行排序的。但是,当集合中包含空值(null)时,使用sorted()函数可能会抛出NullPointerException。为了避...

  • Java sorted()函数对原始数据的影响

    Java sorted()函数对原始数据的影响

    sorted() 函数是 Java 8 中引入的一个方法,用于对 Stream 中的元素进行排序。这个方法不会修改原始数据,而是返回一个新的已排序的 Stream。原始数据保持不变。...

  • 如何结合Lambda表达式使用Java sorted()函数

    如何结合Lambda表达式使用Java sorted()函数

    在Java中,可以通过使用sorted()函数与Lambda表达式结合对集合进行排序
    首先,确保已经导入了以下所需的类:
    import java.util.ArrayList;
    impor...

  • Java中sorted()函数返回的结果是什么类型

    Java中sorted()函数返回的结果是什么类型

    在Java中,sorted()函数是Stream API中的一个操作,用于对流中的元素进行排序。当你对一个Stream调用sorted()方法时,它会返回一个新的Stream,其中包含按自然顺...