logo

Collections.sort() v Javě s příklady

java.util.Collections.sort() metoda je přítomna ve třídě java.util.Collections. Používá se k řazení prvků přítomných v zadaném seznam sbírky ve vzestupném pořadí. Funguje podobně jako java.util.Arrays.sort() metoda, ale je to lepší, než protože dokáže třídit prvky pole, stejně jako propojený seznam, frontu a mnoho dalších v něm přítomných.

public static void sort(List myList) myList : A List type object we want to sort. This method doesn't return anything>

Příklad:



Let us suppose that our list contains {'Geeks For Geeks', 'Friends', 'Dear', 'Is', 'Superb'} After using Collection.sort(), we obtain a sorted list as {'Dear', 'Friends', 'Geeks For Geeks', 'Is', 'Superb'}>

Řazení ArrayList ve vzestupném pořadí

JÁVA








// Java program to demonstrate working of Collections.sort()> import> java.util.*;> public> class> Collectionsorting> {> >public> static> void> main(String[] args)> >{> >// Create a list of strings> >ArrayList al =>new> ArrayList();> >al.add(>'Geeks For Geeks'>);> >al.add(>'Friends'>);> >al.add(>'Dear'>);> >al.add(>'Is'>);> >al.add(>'Superb'>);> >/* Collections.sort method is sorting the> >elements of ArrayList in ascending order. */> >Collections.sort(al);> >// Let us print the sorted list> >System.out.println(>'List after the use of'> +> >' Collection.sort() : '> + al);> >}> }>

c# ukázkový kód
>

>

Výstup

List after the use of Collection.sort() : [Dear, Friends, Geeks For Geeks, Is, Superb]>

Časová složitost : O(N log N) jako časová složitost Collections.sort() je O(nlog(n)).
Pomocný prostor : O(1)

Řazení ArrayList v sestupném pořadí

JÁVA


příklady binárních stromů



// Java program to demonstrate working of Collections.sort()> // to descending order.> import> java.util.*;> public> class> Collectionsorting> {> >public> static> void> main(String[] args)> >{> >// Create a list of strings> >ArrayList al =>new> ArrayList();> >al.add(>'Geeks For Geeks'>);> >al.add(>'Friends'>);> >al.add(>'Dear'>);> >al.add(>'Is'>);> >al.add(>'Superb'>);> >/* Collections.sort method is sorting the> >elements of ArrayList in ascending order. */> >Collections.sort(al, Collections.reverseOrder());> >// Let us print the sorted list> >System.out.println(>'List after the use of'> +> >' Collection.sort() : '> + al);> >}> }>

>

>

Výstup

List after the use of Collection.sort() : [Superb, Is, Geeks For Geeks, Friends, Dear]>

Časová náročnost: O(N log N) jako časová složitost Collections.sort() je O(nlog(n)).
Pomocný prostor: O(1)

Třídění ArrayList podle uživatelem definovaných kritérií. Můžeme použít Rozhraní komparátoru pro tento účel.

Jáva




// Java program to demonstrate working of Comparator> // interface and Collections.sort() to sort according> // to user defined criteria.> import> java.util.*;> import> java.lang.*;> import> java.io.*;> // A class to represent a student.> class> Student> {> >int> rollno;> >String name, address;> >// Constructor> >public> Student(>int> rollno, String name,> >String address)> >{> >this>.rollno = rollno;> >this>.name = name;> >this>.address = address;> >}> >// Used to print student details in main()> >public> String toString()> >{> >return> this>.rollno +> +>this>.name +> > +>this>.address;> >}> }> class> Sortbyroll>implements> Comparator> {> >// Used for sorting in ascending order of> >// roll number> >public> int> compare(Student a, Student b)> >{> >return> a.rollno - b.rollno;> >}> }> // Driver class> class> Main> {> >public> static> void> main (String[] args)> >{> >ArrayList ar =>new> ArrayList();> >ar.add(>new> Student(>111>,>'bbbb'>,>'london'>));> >ar.add(>new> Student(>131>,>'aaaa'>,>'nyc'>));> >ar.add(>new> Student(>121>,>'cccc'>,>'jaipur'>));> >System.out.println(>'Unsorted'>);> >for> (>int> i=>0>; i System.out.println(ar.get(i)); Collections.sort(ar, new Sortbyroll()); System.out.println(' Sorted by rollno'); for (int i=0; i System.out.println(ar.get(i)); } }>

>

>

Výstup

Unsorted 111 bbbb london 131 aaaa nyc 121 cccc jaipur Sorted by rollno 111 bbbb london 121 cccc jaipur 131 aaaa nyc>

Arrays.sort() vs Collections.sort() Arrays.sort funguje pro pole, která mohou být také primitivního datového typu. Sbírky .sort() funguje pro objekty jako jsou kolekce ArrayList , Spojový seznam , atd. Po vytvoření ArrayList daných položek pole můžeme použít Collections.sort() k seřazení pole.

JÁVA


java smyčky



// Using Collections.sort() to sort an array> import> java.util.*;> public> class> Collectionsort> {> >public> static> void> main(String[] args)> >{> >// create an array of string objs> >String domains[] = {>'Practice'>,>'Geeks'>,> >'Code'>,>'Quiz'>};> >// Here we are making a list named as Collist> >List colList => >new> ArrayList(Arrays.asList(domains));> >// Collection.sort() method is used here> >// to sort the list elements.> >Collections.sort(colList);> >// Let us print the sorted list> >System.out.println(>'List after the use of'> +> >' Collection.sort() : '> +> >colList);> >}> }>

>

>

Výstup

List after the use of Collection.sort() : [Code, Geeks, Practice, Quiz]>

Časová složitost Arrays.sort() vs Collections.sort() :

Arrays.sort() používá algoritmus Dual-Pivot Quicksort, který poskytuje časovou složitost O(N.log N), která je obvykle rychlejší než tradiční algoritmy Quicksort. Na druhé straně Collections.sort() vytvoří pole prvků seznamu, seřadí je pomocí adaptivního algoritmu Mergesort a iteruje seznam, aby umístil každý prvek na správné místo. Tedy pro primitivní datové typy jako int, char, double atd. Arrays.sort() se ukazuje jako časově mnohem efektivnější než Collections.sort(). Problémy s primitivními datovými typy by se měly pro lepší optimalizaci pokusit vyřešit pomocí Arrays.sort().

prázdno 0

Níže je kód, který demonstruje rozdíl:

Jáva




/*package whatever //do not write package name here */> import> java.io.*;> import> java.util.*;> class> GFG {> >public> static> void> main (String[] args) {> >int> len =>5000000>;> > >// creating a large test array> >int>[] arr =>new> int>[len];> >for> (>int> i = len; i>>0>; i--)> >arr[len - i] = i;> > >// creating a large test arraylist> >ArrayList list =>new> ArrayList();> >for> (>int> i = len; i>>0>; i--)> >list.add(i);> > >// calculating time used by arrays.sort()> >long> startA = System.currentTimeMillis();> >Arrays.sort(arr);> >long> stopA = System.currentTimeMillis();> > >// calculating time used by collections.sort()> >long> startAL = System.currentTimeMillis();> >Collections.sort(list);> >long> stopAL = System.currentTimeMillis();> > >System.out.println(>'Time taken by Arrays.sort(): '> + (stopA - startA));> >System.out.println(>'Time taken by Collections.sort(): '> + (stopAL - startAL));> >}> }> // This code is contributed by godcoder28>

>

>

Výstup

Time taken by Arrays.sort(): 29 Time taken by Collections.sort(): 42>

Tento článek má být užitečný pro vážené Geeky. .