java.util.Collections.sort() metoden er til stede i klassen java.util.Collections. Den brukes til å sortere elementene som er tilstede i det spesifiserte liste av samlingen i stigende rekkefølge. Det fungerer på samme måte som java.util.Arrays.sort() metoden, men den er bedre enn fordi den kan sortere elementene i Array samt koblet liste, kø og mange flere som er til stede i den.
public static void sort(List myList) myList : A List type object we want to sort. This method doesn't return anything>
Eksempel:
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'}>
Sortering av en ArrayList i stigende rekkefølge
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);> > }> }> |
navn på byer i USA
>
>Produksjon
List after the use of Collection.sort() : [Dear, Friends, Geeks For Geeks, Is, Superb]>
Tidskompleksitet : O(N log N) ettersom tidskompleksiteten til Collections.sort() er O(nlog(n)).
Auxiliary Space : O(1)
Sortering av en ArrayList i synkende rekkefølge
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);> > }> }> |
>
liste over fonter i gimp
>Produksjon
List after the use of Collection.sort() : [Superb, Is, Geeks For Geeks, Friends, Dear]>
Tidskompleksitet: O(N log N) som tidskompleksiteten til Collections.sort() er O(nlog(n)).
Hjelpeplass: O(1)
Sortering av en ArrayList i henhold til brukerdefinerte kriterier. Vi kan bruke Komparatorgrensesnitt for dette formålet.
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)); } }> |
navn på spesialtegn
>
>Produksjon
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 fungerer for arrays som også kan være av primitiv datatype. Samlinger .sort() fungerer for objekter Samlinger som ArrayList , LinkedList , etc. Vi kan bruke Collections.sort() til å sortere en matrise etter å ha laget en ArrayList med gitte matriseelementer.
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);> > }> }> |
>
>Produksjon
List after the use of Collection.sort() : [Code, Geeks, Practice, Quiz]>
Arrays.sort() vs Collections.sort() tidskompleksitet:
Arrays.sort() bruker en Dual-Pivot Quicksort-algoritme som gir en tidskompleksitet på O(N.log N) som typisk er raskere enn tradisjonelle Quicksort-algoritmer. På den annen side oppretter Collections.sort() en rekke listeelementer, sorterer dem ved hjelp av en adaptiv Mergesort-algoritme, og itererer over listen for å plassere hvert element på riktig plassering. Således for primitive datatyper som int, char, double, etc. Arrays.sort() viser seg å være mye mer tidseffektiv enn Collections.sort(). Problemer som involverer primitive datatyper bør prøves å løse ved å bruke Arrays.sort() for bedre optimalisering.
java standard parametere
Nedenfor er koden for å demonstrere forskjellen:
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> |
>
>Produksjon
Time taken by Arrays.sort(): 29 Time taken by Collections.sort(): 42>
Artikkelen er ønsket å være nyttig for de anerkjente geeks. .