In Java biedt het raamwerk voor verzamelingen een statische methode sort () die kan worden gebruikt om elementen in een verzameling te sorteren.
De sort()
methode van het verzamelingsraamwerk gebruikt het samenvoegsorteeralgoritme om elementen van een verzameling te sorteren.
Het samenvoegsorteeralgoritme is gebaseerd op de verdeel- en veroveringsregel. Ga voor meer informatie over het samenvoegen sorteren naar Sorteeralgoritme samenvoegen.
Laten we een voorbeeld van de sort()
methode nemen.
Voorbeeld: sorteren in oplopende volgorde
import java.util.ArrayList; import java.util.Collections; class Main ( public static void main(String() args) ( // Creating an array list ArrayList 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); ) )
Uitvoer
Unsorted ArrayList: (4, 2, 3) Sorted ArrayList: (2, 3, 4)
Zoals u kunt zien, vindt de sortering standaard plaats in natuurlijke volgorde (oplopende volgorde). We kunnen de sorteervolgorde van de sort()
methode echter aanpassen .
Aangepaste sorteervolgorde
In Java kan de sort()
methode worden aangepast om sorteren in omgekeerde volgorde uit te voeren met behulp van de Comparator
interface.
Voorbeeld: sorteren in aflopende volgorde
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 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 ( @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; ) ) )
Uitvoer
Ongesorteerde ArrayList: (4, 2, 3) Natuurlijk sorteren: (2, 3, 4) Aangepast sorteren: (4, 3, 2)
In het bovenstaande voorbeeld hebben we de sort()
methode met CustomComparator als argument gebruikt.
Hier is CustomComparator een klasse die de Comparator
interface implementeert . Lees meer over de Java Comparator Interface.
We overschrijven dan de compare()
methode. De methode sorteert nu elementen in omgekeerde volgorde.