java.util.Collections.sort() metodas yra java.util.Collections klasėje. Jis naudojamas rūšiuoti nurodytus elementus sąrašą kolekcijos didėjimo tvarka. Jis veikia panašiai kaip java.util.Arrays.sort() metodas, tačiau jis yra geresnis nei tuo, kad gali rūšiuoti masyvo elementus, taip pat susietą sąrašą, eilę ir daug kitų jame esančių.
public static void sort(List myList) myList : A List type object we want to sort. This method doesn't return anything>
Pavyzdys:
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'}>
ArrayList rūšiavimas didėjančia tvarka
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);> > }> }> |
javascript skambinimo funkcija iš html
>
>Išvestis
List after the use of Collection.sort() : [Dear, Friends, Geeks For Geeks, Is, Superb]>
Laiko sudėtingumas : O(N log N), kaip kolekcijų laiko sudėtingumas.sort() yra O(nlog(n)).
Pagalbinė erdvė : O(1)
ArrayList rūšiavimas mažėjančia tvarka
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);> > }> }> |
>
>Išvestis
List after the use of Collection.sort() : [Superb, Is, Geeks For Geeks, Friends, Dear]>
Laiko sudėtingumas: O(N log N), kaip kolekcijų laiko sudėtingumas.sort() yra O(nlog(n)).
Pagalbinė erdvė: O(1)
ArrayList rūšiavimas pagal vartotojo nustatytus kriterijus. Galime naudoti Lyginimo sąsaja šiam tikslui.
Java
konvertuoti nfa į dfa
// 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)); } }> |
>
>Išvestis
Unsorted 111 bbbb london 131 aaaa nyc 121 cccc jaipur Sorted by rollno 111 bbbb london 121 cccc jaipur 131 aaaa nyc>
Arrays.sort() prieš Collections.sort() Arrays.sort veikia masyvams, kurie taip pat gali būti primityvaus tipo duomenų. Kolekcijos .sort() veikia objektams Kolekcijos kaip ArrayList , LinkedList , ir tt Mes galime naudoti Collections.sort() norėdami surūšiuoti masyvą sukūrę nurodytų masyvo elementų ArrayList.
javascript eilutės pakeitimas
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);> > }> }> |
>
>Išvestis
List after the use of Collection.sort() : [Code, Geeks, Practice, Quiz]>
Arrays.sort() vs Collections.sort() laiko sudėtingumas :
Arrays.sort() naudoja Dual-Pivot Quicksort algoritmą, kuris suteikia laiko sudėtingumą O(N.log N), kuris paprastai yra greitesnis nei tradiciniai Quicksort algoritmai. Kita vertus, Collections.sort() sukuria sąrašo elementų masyvą, surūšiuoja juos naudodama adaptyvųjį Mergesort algoritmą ir kartoja sąrašą, kad kiekvienas elementas būtų tinkamoje vietoje. Taigi primityviems duomenų tipams, tokiems kaip int, char, double ir tt Arrays.sort() yra daug efektyvesnis nei Collections.sort(). Norint geriau optimizuoti, problemas, susijusias su primityviais duomenų tipais, reikia bandyti išspręsti naudojant Arrays.sort().
tu esi sandūra
Žemiau yra kodas, rodantis skirtumą:
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> |
>
>Išvestis
Time taken by Arrays.sort(): 29 Time taken by Collections.sort(): 42>
Straipsnis nori būti naudingas gerbiamiems Geeks. .