java.util.Collections.sort() metoda este prezentă în clasa java.util.Collections. Este folosit pentru a sorta elementele prezente în cele specificate listă de colectare în ordine crescătoare. Funcționează similar cu java.util.Arrays.sort() metoda, dar este mai bună decât deoarece poate sorta elementele Array, precum și lista legată, coada și multe altele prezente în ea.
public static void sort(List myList) myList : A List type object we want to sort. This method doesn't return anything>
Exemplu:
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'}>
Sortarea unui ArrayList în ordine crescătoare
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);> > }> }> |
terminal kali linux
>
>Ieșire
List after the use of Collection.sort() : [Dear, Friends, Geeks For Geeks, Is, Superb]>
Complexitatea timpului : O(N log N) ca complexitate temporală a Colecțiilor.sort() este O(nlog(n)).
Spațiu auxiliar : O(1)
Sortarea unui ArrayList în ordine descrescătoare
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);> > }> }> |
>
>
Selenium tutorial javaIeșire
List after the use of Collection.sort() : [Superb, Is, Geeks For Geeks, Friends, Dear]>
Complexitatea timpului: O(N log N) ca complexitate de timp a Collections.sort() este O(nlog(n)).
Spațiu auxiliar: O(1)
Sortarea unui ArrayList conform criteriilor definite de utilizator. Putem folosi Interfață de comparație în acest scop.
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)); } }> |
expresie de regresie în java
>
>Ieșire
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 funcționează pentru matrice care pot fi, de asemenea, de tip primitiv de date. Colecții .sort() funcționează pentru obiecte, cum ar fi colecții ArrayList , LinkedList , etc. Putem folosi Collections.sort() pentru a sorta o matrice după crearea unei ArrayList cu elemente de matrice date.
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);> > }> }> |
>
>Ieșire
List after the use of Collection.sort() : [Code, Geeks, Practice, Quiz]>
Complexitatea timpului Arrays.sort() vs Collections.sort() :
Arrays.sort() folosește un algoritm de sortare rapidă cu pivot dublu care oferă o complexitate de timp de O(N.log N), care este de obicei mai rapidă decât algoritmii tradiționali Quicksort. Pe de altă parte, Collections.sort() creează o serie de elemente de listă, le sortează folosind un algoritm adaptiv Mergesort și iterează peste listă pentru a poziționa fiecare element în locația sa corectă. Astfel, pentru tipurile de date primitive precum int, char, double etc. Arrays.sort() se dovedește a fi mult mai eficient în timp decât Collections.sort(). Problemele care implică tipuri de date primitive ar trebui încercate să fie rezolvate folosind Arrays.sort() pentru o mai bună optimizare.
Kat timpf
Mai jos este codul pentru a demonstra diferența:
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>>>> > arr[len - i] = i;> > > // creating a large test arraylist> > ArrayList list => new> ArrayList();> > for> (> int> i = len; 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> |
>
>Ieșire
Time taken by Arrays.sort(): 29 Time taken by Collections.sort(): 42>
Articolul se dorește să fie util stimaților Geeks. .