java.util.Collections.sort() El mètode està present a la classe java.util.Collections. S'utilitza per ordenar els elements presents en l'especificat llista de Col·lecció en ordre ascendent. Funciona semblant a java.util.Arrays.sort() mètode però és millor que ja que pot ordenar els elements de Array, així com la llista enllaçada, la cua i molts més presents en ell.
public static void sort(List myList) myList : A List type object we want to sort. This method doesn't return anything>
Exemple:
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'}>
Ordenant una ArrayList en ordre ascendent
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);> > }> }> |
java substitueix el caràcter de la cadena
>
>Sortida
List after the use of Collection.sort() : [Dear, Friends, Geeks For Geeks, Is, Superb]>
Complexitat temporal : O(N log N) com a complexitat temporal de Collections.sort() és O(nlog(n)).
Espai Auxiliar : O(1)
Ordenant una ArrayList en ordre descendent
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);> > }> }> |
comunicació analògica
>
>Sortida
List after the use of Collection.sort() : [Superb, Is, Geeks For Geeks, Friends, Dear]>
Complexitat temporal: O(N log N) com a complexitat temporal de Collections.sort() és O(nlog(n)).
Espai auxiliar: O(1)
Ordenar una ArrayList segons criteris definits per l'usuari. Podem utilitzar Interfície de comparació per a aquest propòsit.
Java
reemplaça la cadena 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)); } }> |
>
>Sortida
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 funciona per a matrius que també poden ser de tipus de dades primitives. Col·leccions .sort() funciona per a objectes Col·leccions com ArrayList , LinkedList , etc. Podem utilitzar Collections.sort() per ordenar una matriu després de crear una ArrayList d'elements de matriu donats.
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);> > }> }> |
>
>Sortida
List after the use of Collection.sort() : [Code, Geeks, Practice, Quiz]>
Complexitat temporal Arrays.sort() vs Collections.sort():
Arrays.sort() utilitza un algorisme Quicksort de doble pivot que ofereix una complexitat temporal de O(N.log N) que normalment és més ràpid que els algorismes Quicksort tradicionals. D'altra banda, Collections.sort() crea una matriu d'elements de llista, els ordena mitjançant un algorisme adaptatiu Mergesort i itera sobre la llista per situar cada element a la seva ubicació correcta. Així, per a tipus de dades primitius com int, char, double, etc. Arrays.sort() demostra ser molt més eficient en el temps que Collections.sort(). Els problemes que impliquen tipus de dades primitius s'han d'intentar resoldre amb Arrays.sort() per a una millor optimització.
dataformat.format
A continuació es mostra el codi per demostrar la diferència:
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> |
>
>Sortida
Time taken by Arrays.sort(): 29 Time taken by Collections.sort(): 42>
Es vol que l'article sigui útil als estimats Geeks. .