Java sort()

collections 框架的 sort() 方法使用归并排序算法对集合的元素进行排序。

归并排序算法基于分治法。要了解更多关于归并排序的信息,请访问 归并排序算法

让我们以 sort() 方法为例。


示例:升序排序

import java.util.ArrayList;
import java.util.Collections;

class Main {
    public static void main(String[] args) {

        // Creating an array list
        ArrayList<Integer> numbers = new ArrayList<>();

        // Add elements
        numbers.add(4);
        numbers.add(2);
        numbers.add(3);
        System.out.println("Unsorted ArrayList: " + numbers);

        // Using the sort() method
        Collections.sort(numbers);
        System.out.println("Sorted ArrayList: " + numbers);

    }
}

输出

Unsorted ArrayList: [4, 2, 3]
Sorted ArrayList: [2, 3, 4]

正如你所见,默认情况下,排序按自然顺序(升序)进行。但是,我们可以自定义 sort() 方法的排序顺序。


自定义排序顺序

在 Java 中,可以使用 Comparator 接口自定义 sort() 方法以执行反向排序。


示例:降序排序

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

class Main {
    public static void main(String[] args) {

        // Creating an array list
        ArrayList<Integer> numbers = new ArrayList<>();

        // Add elements
        numbers.add(4);
        numbers.add(2);
        numbers.add(3);
        System.out.println("Unsorted ArrayList: " + numbers);

        // Using the sort() method
        Collections.sort(numbers);
        System.out.println("Natural Sorting: " + numbers);

        // Using the customized sort() method
        Collections.sort(numbers, new CustomComparator());
        System.out.println("Customized Sorting: " + numbers);

    }
}

class CustomComparator implements Comparator<Integer> {

    @Override
    public int compare(Integer animal1, Integer animal2) {
        int value =  animal1.compareTo(animal2);
        // elements are sorted in reverse order
        if (value > 0) {
            return -1;
        }
        else if (value < 0) {
            return 1;
        }
        else {
            return 0;
        }
    }
}

输出

Unsorted ArrayList: [4, 2, 3]
Natural Sorting: [2, 3, 4]
Customized Sorting: [4, 3, 2]

在上面的示例中,我们将 sort() 方法与 CustomComparator 作为参数一起使用。

在这里,CustomComparator 是一个实现 Comparator 接口的类。了解更多关于Java Comparator 接口

然后我们重写 compare() 方法。该方法现在将按反向顺序对元素进行排序。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战