V Javi okvir zbirk zagotavlja statično metodo sort (), ki jo lahko uporabimo za razvrščanje elementov v zbirki.
sort()
Metoda okviru zbirk uporablja zlivanjem algoritem za razvrščanje elementov zbirke.
Algoritem za združevanje razvrščanja temelji na pravilu deli in osvoji. Če želite izvedeti več o razvrščanju združevanja, obiščite algoritem razvrščanja spojev.
Vzemimo primer sort()
metode.
Primer: Razvrščanje v naraščajočem vrstnem redu
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); ) )
Izhod
Unsorted ArrayList: (4, 2, 3) Sorted ArrayList: (2, 3, 4)
Kot lahko vidite, privzeto sortiranje poteka v naravnem vrstnem redu (naraščajoče). Lahko pa prilagodimo vrstni red razvrščanja sort()
metode.
Prilagojeni vrstni red razvrščanja
V Javi lahko sort()
metodo prilagodite tako, da z Comparator
vmesnikom izvede sortiranje v obratnem vrstnem redu .
Primer: Razvrščanje po padajočem vrstnem redu
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; ) ) )
Izhod
Nerazvrščen seznam array: (4, 2, 3) naravno razvrščanje: (2, 3, 4) prilagojeno razvrščanje: (4, 3, 2)
V zgornjem primeru smo sort()
kot argument uporabili metodo z CustomComparator.
Tu je CustomComparator razred, ki izvaja Comparator
vmesnik. Preberite več o vmesniku Java Comparator.
Nato compare()
metodo preglasimo . Zdaj bo metoda razvrstila elemente v obratnem vrstnem redu.