logo

Collections.sort() i Java med eksempler

java.util.Collections.sort() metoden er til stede i klassen java.util.Collections. Den brukes til å sortere elementene som er tilstede i det spesifiserte liste av samlingen i stigende rekkefølge. Det fungerer på samme måte som java.util.Arrays.sort() metoden, men den er bedre enn fordi den kan sortere elementene i Array samt koblet liste, kø og mange flere som er 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 av en ArrayList i stigende rekkefø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);> >}> }>

navn på byer i USA
>

>

Produksjon

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

Tidskompleksitet : O(N log N) ettersom tidskompleksiteten til Collections.sort() er O(nlog(n)).
Auxiliary Space : O(1)

Sortering av en ArrayList i synkende rekkefø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);> >}> }>

>

liste over fonter i gimp
>

Produksjon

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

Tidskompleksitet: O(N log N) som tidskompleksiteten til Collections.sort() er O(nlog(n)).
Hjelpeplass: O(1)

Sortering av en ArrayList i henhold til brukerdefinerte kriterier. Vi kan bruke Komparatorgrensesnitt for dette formålet.

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å spesialtegn

>

>

Produksjon

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 av primitiv datatype. Samlinger .sort() fungerer for objekter Samlinger som ArrayList , LinkedList , etc. Vi kan bruke Collections.sort() til å sortere en matrise etter å ha laget en ArrayList med gitte matriseelementer.

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

>

>

Produksjon

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

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

Arrays.sort() bruker en Dual-Pivot Quicksort-algoritme som gir en tidskompleksitet på O(N.log N) som typisk er raskere enn tradisjonelle Quicksort-algoritmer. På den annen side oppretter Collections.sort() en rekke listeelementer, sorterer dem ved hjelp av en adaptiv Mergesort-algoritme, og itererer over listen for å plassere hvert element på riktig plassering. Således for primitive datatyper som int, char, double, etc. Arrays.sort() viser seg å være mye mer tidseffektiv enn Collections.sort(). Problemer som involverer primitive datatyper bør prøves å løse ved å bruke Arrays.sort() for bedre optimalisering.

java standard parametere

Nedenfor er koden for å demonstrere forskjellen:

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>

>

>

Produksjon

Time taken by Arrays.sort(): 29 Time taken by Collections.sort(): 42>

Artikkelen er ønsket å være nyttig for de anerkjente geeks. .