English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base Java

Contrôle de flux Java

Java tableau

Java orienté objet (I)

Java orienté objet (II)

Java 面向对象(III)

Traitement des exceptions Java

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java sort()方法

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

合并排序算法基于分而治之规则。要了解有关合并排序的更多信息,请访问合并排序算法。

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

示例:按升序排序

import java.util.ArrayList;
import java.util.Collections;
class Main {
    public static void main(String[] args) {
        //创建数组列表
        ArrayList<Integer> numbers = new ArrayList<>();
        //添加元素
        numbers.add(4);
        numbers.add(2);
        numbers.add(3);
        System.out.println("Unsorted ArrayList: ") + numbers);
        //使用sort()方法
        Collections.sort(numbers);
        System.out.println("Sorted ArrayList: ") + numbers);
    }
}

Output result

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

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

自定义排序顺序

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

示例:按降序排序

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
class Main {
    public static void main(String[] args) {
        //创建数组列表
        ArrayList<Integer> numbers = new ArrayList<>();
        //添加元素
        numbers.add(4);
        numbers.add(2);
        numbers.add(3);
        System.out.println("Unsorted ArrayList: ") + numbers);
        //使用sort()方法
        Collections.sort(numbers);
        System.out.println("Natural Sorting: ") + numbers);
        //使用自定义的sort()方法
        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;
        }
    }
}

Output result

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

In the above example, we used the sort() method and CustomComparator as a parameter.

Here, CustomComparator is a class that implements the Comparator interface. Learn more about the Java Comparator interface.

Then rewrite the compare() method. This method now sorts the elements in reverse order.