java.util.Collections.sort() Die Methode ist in der Klasse java.util.Collections vorhanden. Es wird verwendet, um die im angegebenen Element vorhandenen Elemente zu sortieren Liste der Sammlung in aufsteigender Reihenfolge. Es funktioniert ähnlich wie java.util.Arrays.sort() Methode, aber sie ist besser als die, da sie die Elemente eines Arrays sowie der darin enthaltenen verknüpften Listen, Warteschlangen und viele mehr sortieren kann.
public static void sort(List myList) myList : A List type object we want to sort. This method doesn't return anything>
Beispiel:
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'}>
Sortieren einer ArrayList in aufsteigender Reihenfolge
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);> > }> }> |
So lesen Sie die CSV-Datei in Java
>
>Ausgabe
List after the use of Collection.sort() : [Dear, Friends, Geeks For Geeks, Is, Superb]>
Zeitkomplexität : O(N log N), da die zeitliche Komplexität von Collections.sort() O(nlog(n)) ist.
Hilfsraum : O(1)
Sortieren einer ArrayList in absteigender Reihenfolge
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);> > }> }> |
>
Fibonacci-Code Java
>Ausgabe
List after the use of Collection.sort() : [Superb, Is, Geeks For Geeks, Friends, Dear]>
Zeitkomplexität: O(N log N), da die Zeitkomplexität von Collections.sort() O(nlog(n)) ist.
Hilfsraum: O(1)
Sortieren einer ArrayList nach benutzerdefinierten Kriterien. Wir können benutzen Komparatorschnittstelle für diesen Zweck.
Java
Avl-Baumrotation
// 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)); } }> |
>
>Ausgabe
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 funktioniert für Arrays, die auch einen primitiven Datentyp haben können. Sammlungen .sort() funktioniert für Objekte wie Sammlungen Anordnungsliste , LinkedList usw. Wir können Collections.sort() verwenden, um ein Array zu sortieren, nachdem wir eine ArrayList mit bestimmten Array-Elementen erstellt haben.
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);> > }> }> |
>
>Ausgabe
List after the use of Collection.sort() : [Code, Geeks, Practice, Quiz]>
Arrays.sort() vs. Collections.sort() Zeitkomplexität:
Arrays.sort() verwendet einen Dual-Pivot-Quicksort-Algorithmus, der eine Zeitkomplexität von O(N.log N) ergibt, die typischerweise schneller ist als herkömmliche Quicksort-Algorithmen. Andererseits erstellt Collections.sort() ein Array von Listenelementen, sortiert sie mithilfe eines adaptiven Mergesort-Algorithmus und durchläuft die Liste, um jedes Element an der richtigen Position zu positionieren. Daher erweist sich Arrays.sort() für primitive Datentypen wie int, char, double usw. als viel zeiteffizienter als Collections.sort(). Probleme mit primitiven Datentypen sollten zur besseren Optimierung mithilfe von Arrays.sort() gelöst werden.
Versuchen Sie es mit Java
Nachfolgend finden Sie den Code zur Veranschaulichung des Unterschieds:
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> |
>
>Ausgabe
Time taken by Arrays.sort(): 29 Time taken by Collections.sort(): 42>
Der Artikel soll den geschätzten Geeks nützlich sein. .