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

Java Grund教程

Java-Flowsteuerung

Java-Array

Java objektorientiert (I)

Java objektorientiert (II)

Java 面向对象(III)

Java Ausnahmebehandlung

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);
        //Sortieren der Elemente in umgekehrter Reihenfolge
        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]

Im obigen Beispiel haben wir die sort() Methode und CustomComparator als Parameter verwendet.

Hier ist CustomComparator eine Klasse, die das Comparator Interface implementiert. Erfahre mehr über das Java Comparator Interface.

Dann überschreibe die compare() Methode. Diese Methode sortiert die Elemente jetzt in umgekehrter Reihenfolge.