java.util.Collections.sort() metóda je prítomná v triede java.util.Collections. Používa sa na triedenie prvkov prítomných v špecifikovanom zoznam kolekcie vo vzostupnom poradí. Funguje podobne ako java.util.Arrays.sort() metóda, ale je lepšia, ako dokáže triediť prvky poľa, ako aj prepojený zoznam, front a mnohé ďalšie v ňom prítomné.
public static void sort(List myList) myList : A List type object we want to sort. This method doesn't return anything>
Prí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'}>
Triedenie ArrayList vo vzostupnom poradí
JAVA
// 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);> > }> }> |
gimp ukladanie ako jpeg
>
>Výkon
List after the use of Collection.sort() : [Dear, Friends, Geeks For Geeks, Is, Superb]>
Časová zložitosť : O(N log N) ako časová zložitosť Collections.sort() je O(nlog(n)).
Pomocný priestor : O(1)
Zoradenie ArrayList v zostupnom poradí
JAVA
// 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);> > }> }> |
>
formátovať dátum na reťazec
>Výkon
List after the use of Collection.sort() : [Superb, Is, Geeks For Geeks, Friends, Dear]>
Časová zložitosť: O(N log N) ako časová zložitosť Collections.sort() je O(nlog(n)).
Pomocný priestor: O(1)
Triedenie ArrayList podľa užívateľom definovaných kritérií. Môžeme použiť Rozhranie komparátora pre tento účel.
Java
// 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)); } }> |
porovnateľné rozhranie v jazyku Java
>
>Výkon
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 pre polia, ktoré môžu byť tiež primitívneho dátového typu. zbierky .sort() funguje pre objekty ako kolekcie ArrayList , LinkedList , atď. Po vytvorení ArrayList daných položiek poľa môžeme použiť Collections.sort() na triedenie poľa.
JAVA
// 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ýkon
List after the use of Collection.sort() : [Code, Geeks, Practice, Quiz]>
Časová zložitosť Arrays.sort() vs Collections.sort() :
Arrays.sort() používa algoritmus Dual-Pivot Quicksort, ktorý poskytuje časovú zložitosť O(N.log N), ktorá je zvyčajne rýchlejšia ako tradičné algoritmy Quicksort. Na druhej strane Collections.sort() vytvorí pole prvkov zoznamu, zoradí ich pomocou adaptívneho algoritmu Mergesort a iteruje zoznam, aby umiestnil každý prvok na správne miesto. Pre primitívne dátové typy ako int, char, double atď. sa teda Arrays.sort() ukazuje ako časovo efektívnejšia ako Collections.sort(). Problémy zahŕňajúce primitívne dátové typy by sa mali pokúsiť vyriešiť pomocou Arrays.sort() pre lepšiu optimalizáciu.
c programy
Nižšie je uvedený kód, ktorý demonštruje rozdiel:
Java
/*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ýkon
Time taken by Arrays.sort(): 29 Time taken by Collections.sort(): 42>
Tento článok má byť užitočný pre vážených Geekov. .