English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
集合框架的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.