java.util.Collections.sort() methode is aanwezig in de klasse java.util.Collections. Het wordt gebruikt om de elementen te sorteren die aanwezig zijn in het opgegeven bestand lijst van verzameling in oplopende volgorde. Het werkt vergelijkbaar met java.util.Arrays.sort() methode, maar het is beter dan omdat het de elementen van Array kan sorteren, evenals de gekoppelde lijst, wachtrij en nog veel meer die erin aanwezig zijn.
public static void sort(List myList) myList : A List type object we want to sort. This method doesn't return anything>
Voorbeeld:
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'}>
Een ArrayList in oplopende volgorde sorteren
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);> > }> }> |
vergelijk met methode java
>
>Uitvoer
List after the use of Collection.sort() : [Dear, Friends, Geeks For Geeks, Is, Superb]>
Tijdcomplexiteit : O(N log N) aangezien de tijdscomplexiteit van Collections.sort() O(nlog(n)) is.
Hulpruimte : O(1)
Een ArrayList in aflopende volgorde sorteren
JAVA
8 naar 1 multiplexer
// 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);> > }> }> |
>
>Uitvoer
List after the use of Collection.sort() : [Superb, Is, Geeks For Geeks, Friends, Dear]>
Tijdcomplexiteit: O(N log N) aangezien de tijdscomplexiteit van Collections.sort() O(nlog(n)) is.
Hulpruimte: O(1)
Een ArrayList sorteren volgens door de gebruiker gedefinieerde criteria. We kunnen gebruiken Vergelijkingsinterface Voor dit doeleinde.
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)); } }> |
>
>Uitvoer
Unsorted 111 bbbb london 131 aaaa nyc 121 cccc jaipur Sorted by rollno 111 bbbb london 121 cccc jaipur 131 aaaa nyc>
Arrays.sort() versus collecties.sort() Arrays.sort werkt voor arrays die ook van een primitief gegevenstype kunnen zijn. Collecties .sort() werkt voor objecten Collecties zoals ArrayLijst , GelinkteLijst , enz. We kunnen Collections.sort() gebruiken om een array te sorteren na het maken van een ArrayList met bepaalde array-items.
JAVA
wat is desktop ini
// 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);> > }> }> |
>
>Uitvoer
List after the use of Collection.sort() : [Code, Geeks, Practice, Quiz]>
Arrays.sort() versus Collections.sort() tijdcomplexiteit:
Arrays.sort() maakt gebruik van een Dual-Pivot Quicksort-algoritme dat een tijdscomplexiteit van O(N.log N) oplevert die doorgaans sneller is dan traditionele Quicksort-algoritmen. Aan de andere kant creëert Collections.sort() een array van lijstelementen, sorteert deze met behulp van een adaptief Mergesort-algoritme en herhaalt de lijst om elk element op de juiste locatie te positioneren. Dus voor primitieve datatypes zoals int, char, double, enz. blijkt Arrays.sort() veel tijdefficiënter te zijn dan Collections.sort(). Problemen met primitieve datatypes moeten worden geprobeerd op te lossen met behulp van Arrays.sort() voor een betere optimalisatie.
Java-reeks cmp
Hieronder vindt u de code om het verschil aan te tonen:
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> |
>
>Uitvoer
Time taken by Arrays.sort(): 29 Time taken by Collections.sort(): 42>
Het artikel wil nuttig zijn voor de gewaardeerde Geeks. .