English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Il metodo sort() della struttura di insieme utilizza l'algoritmo di ordinamento di fusione per ordinare gli elementi dell'insieme.
L'algoritmo di ordinamento di fusione si basa sul principio di divide et impera. Per ulteriori informazioni sull'algoritmo di ordinamento di fusione, visitare l'algoritmo di ordinamento di fusione.
Prendiamo come esempio il metodo 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("ArrayList ordinato: " + numbers); } }
Risultato di output
ArrayList non ordinata: [4, 2, 3] ArrayList ordinato: [2, 3, 4]
Come vedete, per impostazione predefinita, l'ordinamento avviene in ordine naturale (crescente). Tuttavia, possiamo personalizzare l'ordine di ordinamento del metodo sort().
In Java, è possibile personalizzare il metodo sort(), utilizzando l'interfaccia Comparator per eseguire l'ordinamento in senso inverso.
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); // Gli elementi vengono ordinati in ordine inverso if (value > 0) { return -1; } else if (value < 0) { return 1; } else { return 0; } } }
Risultato di output
ArrayList non ordinata: [4, 2, 3] Ordinamento naturale: [2, 3, 4] Ordinamento personalizzato: [4, 3, 2]
Nell'esempio sopra, abbiamo utilizzato il metodo sort() e CustomComparator come parametro.
Qui, CustomComparator è una classe che implementa l'interfaccia Comparator. Scopri di più sull'interfaccia Java Comparator.
Poi ricorda il metodo compare(). Questo metodo ora ordina gli elementi in ordine inverso.