Mi az a rendezés?
Válasz az MI-től
sobes.tech MI
Java-ban a "rendezés" gyakran a gyűjtemény elemeinek meghatározott sorrendbe helyezésének folyamatára utal. Ennek két fő mechanizmusa van:
-
Természetes sorrend (Natural Ordering): A osztály implementálja a
Comparableinterfészt, és definiálja acompareTo()metódust. Ez a metódus összehasonlítja az aktuális objektumot egy ugyanazon típusú másik objektummal, és negatív egész számot, nullát vagy pozitív egész számot ad vissza, attól függően, hogy az aktuális objektum "kisebb", "egyenlő" vagy "nagyobb" a másiknál. Sok standard osztály, mint például aString,Integer,Double, már implementálja aComparable-t.// Természetes sorrend példája sztringekre String s1 = "apple"; String s2 = "banana"; int result = s1.compareTo(s2); // eredmény negatív lesz Integer i1 = 10; Integer i2 = 5; int result2 = i1.compareTo(i2); // eredmény pozitív lesz -
Egyedi sorrend (Custom Ordering): Külön osztály készül, amely implementálja a
Comparatorinterfészt, és definiálja acompare(T o1, T o2)metódust. Ez a metódus két objektumot hasonlít össze, és hasonlóan acompareTo()-hoz, negatív, nulla vagy pozitív értéket ad vissza. AComparatorakkor hasznos, ha a természetes sorrend nem megfelelő, vagy ha többféle sorrendet szeretnénk ugyanazon típushoz.import java.util.Comparator; // Egyedi sorrend példája a sztring hosszának alapján public class StringLengthComparator implements Comparator<String> { @Override public int compare(String s1, String s2) { return Integer.compare(s1.length(), s2.length()); } } // A comparator használata // List<String> strings = Arrays.asList("orange", "apple", "grape"); // Collections.sort(strings, new StringLengthComparator()); // most a lista ["apple", "grape", "orange"] lesz
Ezek a mechanizmusok a Arrays és Collections osztályok rendezési módszereiben, valamint a rendezett kollekciókban, mint például a TreeSet és a TreeMap használatában találhatók meg.