logo

Collections.sort() Java ar piemēriem

java.util.Collections.sort() metode ir pieejama klasē java.util.Collections. To izmanto, lai kārtotu norādītajā vietā esošos elementus sarakstu kolekcijas augošā secībā. Tas darbojas līdzīgi java.util.Arrays.sort() metode, taču tā ir labāka par to, ka tā var kārtot masīva elementus, kā arī saistītos sarakstus, rindu un daudz ko citu.

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

Piemērs:



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 kārtošana augošā secībā

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

jsp javatpoint
>

>

Izvade

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

Laika sarežģītība : O(N log N) kā kolekciju laika sarežģītība.sort() ir O(nlog(n)).
Palīgtelpa : O(1)

ArrayList kārtošana dilstošā secībā

JAVA


ir olbaltumvielu tauki



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

>

>

Izvade

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

Laika sarežģītība: O(N log N) kā Collections.sort() laika sarežģītība ir O(nlog(n)).
Palīgtelpa: O(1)

ArrayList kārtošana pēc lietotāja definētiem kritērijiem. Varam izmantot Salīdzinājuma interfeiss šim nolūkam.

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

>

>

Izvade

Unsorted 111 bbbb london 131 aaaa nyc 121 cccc jaipur Sorted by rollno 111 bbbb london 121 cccc jaipur 131 aaaa nyc>

Arrays.sort() pret Collections.sort() Arrays.sort darbojas masīviem, kuriem var būt arī primitīvs datu tips. Kolekcijas .sort() darbojas objektiem, piemēram, kolekcijām ArrayList , LinkedList , utt. Mēs varam izmantot Collections.sort(), lai kārtotu masīvu pēc tam, kad ir izveidots norādīto masīva vienumu ArrayList.

JAVA


concat java virkne



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

>

>

Izvade

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

Arrays.sort() vs Collections.sort() laika sarežģītība:

Arrays.sort() izmanto Dual-Pivot Quicksort algoritmu, kas nodrošina laika sarežģītību O(N.log N), kas parasti ir ātrāks nekā tradicionālie Quicksort algoritmi. No otras puses, Collections.sort() izveido saraksta elementu masīvu, sakārto tos, izmantojot adaptīvo Mergesort algoritmu, un atkārto sarakstu, lai katru elementu novietotu tā pareizajā vietā. Tādējādi primitīviem datu tipiem, piemēram, int, char, double utt. Arrays.sort() izrādās daudz laika efektīvāks nekā Collections.sort(). Problēmas, kas saistītas ar primitīviem datu tipiem, ir jāmēģina atrisināt, izmantojot Arrays.sort(), lai nodrošinātu labāku optimizāciju.

c programmas

Zemāk ir kods, lai parādītu atšķirību:

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>>>; i--)> >arr[len - i] = i;> > >// creating a large test arraylist> >ArrayList list =>new> ArrayList();> >for> (>int> i = len; i>>>; 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>

>

>

Izvade

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

Raksts vēlams būt noderīgs cienījamiem Gīkiem. .