java.util.Collections.sort() metode er til stede i klassen java.util.Collections. Det bruges til at sortere de elementer, der er til stede i det angivne liste af Samling i stigende rækkefølge. Det fungerer på samme måde som java.util.Arrays.sort() metoden, men den er bedre end da den kan sortere elementerne i Array såvel som den linkede liste, køen og mange flere 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 af en ArrayList i stigende rækkefø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);> > }> }> |
objekt i java-programmering
>
>Produktion
List after the use of Collection.sort() : [Dear, Friends, Geeks For Geeks, Is, Superb]>
Tidskompleksitet : O(N log N) da tidskompleksiteten af Collections.sort() er O(nlog(n)).
Hjælpeplads : O(1)
Sortering af en ArrayList i faldende rækkefø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);> > }> }> |
>
java scan.nextstring
>Produktion
List after the use of Collection.sort() : [Superb, Is, Geeks For Geeks, Friends, Dear]>
Tidskompleksitet: O(N log N) som tidskompleksiteten af Collections.sort() er O(nlog(n)).
Hjælpeplads: O(1)
Sortering af en ArrayList i henhold til brugerdefinerede kriterier. Vi kan bruge Komparatorgrænseflade til dette formål.
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å specialtegn
>
>Produktion
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 af primitiv datatype. Samlinger .sort() virker for objekter som samlinger ArrayList , LinkedList , osv. Vi kan bruge Collections.sort() til at sortere et array efter at have oprettet en ArrayList af givne array-elementer.
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);> > }> }> |
>
>Produktion
List after the use of Collection.sort() : [Code, Geeks, Practice, Quiz]>
Arrays.sort() vs Collections.sort() tidskompleksitet:
Arrays.sort() bruger en Dual-Pivot Quicksort-algoritme, som giver en tidskompleksitet på O(N.log N), som typisk er hurtigere end traditionelle Quicksort-algoritmer. På den anden side opretter Collections.sort() en række listeelementer, sorterer dem ved hjælp af en adaptiv Mergesort-algoritme og itererer over listen for at placere hvert element på dets korrekte placering. Således for primitive datatyper som int, char, double osv. Arrays.sort() viser sig at være langt mere tidseffektiv end Collections.sort(). Problemer, der involverer primitive datatyper, bør prøves at løse ved hjælp af Arrays.sort() for bedre optimering.
java standard parametre
Nedenfor er koden til at demonstrere forskellen:
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> |
>
>Produktion
Time taken by Arrays.sort(): 29 Time taken by Collections.sort(): 42>
Artiklen ønskes brugbar for de ærede nørder. .