logo

Collections.sort() i Java med exempel

java.util.Collections.sort() metod finns i klassen java.util.Collections. Den används för att sortera de element som finns i den angivna lista av samlingen i stigande ordning. Det fungerar liknande java.util.Arrays.sort() metod men det är bättre än eftersom det kan sortera elementen i Array samt länkad lista, kö och många fler som finns i den.

public static void sort(List myList) myList : A List type object we want to sort. This method doesn't return anything>

Exempel:



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'}>

Sortera en ArrayList i stigande ordning

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);> >}> }>

exempel på mooremaskin
>

>

Produktion

List after the use of Collection.sort() : [Dear, Friends, Geeks For Geeks, Is, Superb]>

Tidskomplexitet : O(N log N) eftersom tidskomplexiteten för Collections.sort() är O(nlog(n)).
Hjälputrymme : O(1)

Sortera en ArrayList i fallande ordning

JAVA




java öppna en fil
// 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);> >}> }>

>

>

Produktion

List after the use of Collection.sort() : [Superb, Is, Geeks For Geeks, Friends, Dear]>

Tidskomplexitet: O(N log N) eftersom tidskomplexiteten för Collections.sort() är O(nlog(n)).
Hjälputrymme: O(1)

Sortera en ArrayList enligt användardefinierade kriterier. Vi kan använda Jämförelsegränssnitt för det här syftet.

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)); } }>

>

>

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 fungerar för arrayer som också kan vara av primitiv datatyp. Samlingar .sort() fungerar för objekt som samlingar som ArrayList , Länkad lista , etc. Vi kan använda Collections.sort() för att sortera en array efter att ha skapat en ArrayList med givna array-objekt.

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);> >}> }>

konvertera sträng till int i java

>

>

Produktion

List after the use of Collection.sort() : [Code, Geeks, Practice, Quiz]>

Arrays.sort() vs Collections.sort() tidskomplexitet:

Arrays.sort() använder en Dual-Pivot Quicksort-algoritm som ger en tidskomplexitet på O(N.log N) som vanligtvis är snabbare än traditionella Quicksort-algoritmer. Å andra sidan skapar Collections.sort() en array av listelement, sorterar dem med en adaptiv Mergesort-algoritm och itererar över listan för att placera varje element på rätt plats. Således för primitiva datatyper som int, char, double, etc. Arrays.sort() visar sig vara mycket mer tidseffektiv än Collections.sort(). Problem som involverar primitiva datatyper bör försöka lösas med Arrays.sort() för bättre optimering.

java sammanfoga strängar

Nedan är koden för att visa skillnaden:

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>

Artikeln önskas vara användbar för de uppskattade nördarna. .