V prostredí Java poskytuje kolekčný rámec statickú metódu sort (), ktorú je možné použiť na triedenie prvkov v kolekcii.
sort()
Spôsob rámci zbierok používa algoritmus zlúčenie na zoradenie prvky kolekcie.
Algoritmus triedenia zlúčenia je založený na pravidle rozdelenia a dobytia. Ak sa chcete dozvedieť viac o triedení zlúčenia, navštívte algoritmus zlúčenia zoradenia.
Zoberme si príklad sort()
metódy.
Príklad: Zoradenie vzostupne
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); ) )
Výkon
Nezoradený zoznam polí: (4, 2, 3) Zoradený zoznam polí: (2, 3, 4)
Ako môžete vidieť, predvolene sa triedenie uskutočňuje v prirodzenom poradí (vzostupne). Môžeme však prispôsobiť poradie triedenia sort()
metódy.
Prispôsobené poradie triedenia
V prostredí Java je možné sort()
metódu prispôsobiť tak, aby sa pomocou Comparator
rozhrania uskutočnilo triedenie v opačnom poradí .
Príklad: Zoradenie zostupne
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; ) ) )
Výkon
Unsorted ArrayList: (4, 2, 3) Prirodzené triedenie: (2, 3, 4) Prispôsobené triedenie: (4, 3, 2)
Vo vyššie uvedenom príklade sme použili sort()
metódu s CustomComparator ako argument.
CustomComparator je trieda, ktorá implementuje Comparator
rozhranie. Získajte viac informácií o rozhraní Java Comparator.
Potom compare()
metódu prepíšeme . Metóda teraz zoradí prvky v opačnom poradí.