Čo je to zoradenie?
sobes.tech AI
Odpoveď od AI
V Jave sa "zoradením" často myslíme proces usporiadania prvkov kolekcie do určitého poradia. Existujú dva hlavné mechanizmy na to:
-
Prirodzené zoradenie (Natural Ordering): Trieda implementuje rozhranie
Comparablea definuje metóducompareTo(). Táto metóda porovnáva aktuálny objekt s iným rovnakého typu a vracia záporné celé číslo, nulu alebo kladné celé číslo, ak je aktuálny objekt "menší", "rovný" alebo "väčší" ako druhý objekt. Mnohé štandardné triedy, akoString,Integer,Double, už implementujúComparable.// Príklad prirodzeného zoradenia pre reťazce String s1 = "apple"; String s2 = "banana"; int result = s1.compareTo(s2); // výsledok bude záporný Integer i1 = 10; Integer i2 = 5; int result2 = i1.compareTo(i2); // výsledok bude kladný -
Vlastné zoradenie (Custom Ordering): Vytvorí sa samostatná trieda, ktorá implementuje rozhranie
Comparatora definuje metóducompare(T o1, T o2). Táto metóda porovnáva dva objekty a vracia záporné, nulu alebo kladné celé číslo, podobne akocompareTo().Comparatorsa používa, keď prirodzené zoradenie nie je vhodné alebo ak je potrebné viacero spôsobov zoradenia pre rovnaký typ.import java.util.Comparator; // Príklad vlastného zoradenia podľa dĺžky reťazca public class StringLengthComparator implements Comparator<String> { @Override public int compare(String s1, String s2) { return Integer.compare(s1.length(), s2.length()); } } // Použitie komparátora // List<String> strings = Arrays.asList("orange", "apple", "grape"); // Collections.sort(strings, new StringLengthComparator()); // teraz bude zoznam ["apple", "grape", "orange"]
Tieto mechanizmy sa používajú v metódach zoradenia v triedach Arrays a Collections, ako aj v zoradených kolekciách, ako sú TreeSet a TreeMap.