logo

Collections.sort() Javassa esimerkkien kanssa

java.util.Collections.sort() menetelmä on läsnä java.util.Collections-luokassa. Sitä käytetään lajittelemaan määritetyissä elementeissä olevat elementit lista kokoelman nousevassa järjestyksessä. Se toimii samalla tavalla kuin java.util.Arrays.sort() menetelmä, mutta se on parempi kuin koska se pystyy lajittelemaan Arrayn elementit sekä linkitetyt luettelot, jonot ja monet muut siinä olevat.

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

Esimerkki:



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

ArrayListin lajittelu nousevaan järjestykseen

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

merkkijonoa verrattuna javaan
>

>

Lähtö

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

Aika monimutkaisuus : O(N log N) Kokoelmien aikakompleksisuutena.sort() on O(nlog(n)).
Aputila : O(1)

ArrayListin lajittelu laskevaan järjestykseen

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

>

>

Lähtö

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

Aika monimutkaisuus: O(N log N) Kokoelmien.sort():n aikakompleksisuutena on O(nlog(n)).
Aputila: O(1)

ArrayListin lajittelu käyttäjän määrittelemien kriteerien mukaan. Voimme käyttää Vertailun käyttöliittymä tähän tarkoitukseen.

Java


dfa automata esimerkkejä



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

>

>

Lähtö

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. Kokoelmat.sort() Arrays.sort toimii taulukoille, jotka voivat olla myös primitiivistä tietotyyppiä. Kokoelmat .sort() toimii objekteille Kokoelmat kuten ArrayList , LinkedList , jne. Voimme lajitella taulukon käyttämällä Collections.sort()-komentoa, kun olet luonut ArrayListin tietyistä taulukon kohteista.

java-objekti jsonille

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

>

>

Lähtö

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

Arrays.sort() vs Collections.sort() aika monimutkaisuus:

Arrays.sort() käyttää Dual-Pivot Quicksort -algoritmia, joka antaa aikamonimutkaisuuden O(N.log N), joka on tyypillisesti nopeampi kuin perinteiset Quicksort-algoritmit. Toisaalta Collections.sort() luo joukon luetteloelementtejä, lajittelee ne adaptiivisen Mergesort-algoritmin avulla ja iteroi luettelon yli sijoittaakseen jokaisen elementin oikeaan paikkaansa. Siten primitiivisille tietotyypeille, kuten int, char, double jne. Arrays.sort() osoittautuu paljon aikaa tehokkaammaksi kuin Collections.sort(). Primitiivisiä tietotyyppejä koskevat ongelmat tulisi yrittää ratkaista käyttämällä Arrays.sort()-komentoa parempaa optimointia varten.

Kat timpf

Alla on koodi eron osoittamiseksi:

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>

>

>

Lähtö

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

Artikkelin toivotaan olevan hyödyllinen arvostetuille nörteille. .