logo

Collections.sort() in Java mit Beispielen

 

java.util.Collections.sort() Die Methode ist in der Klasse java.util.Collections vorhanden. Es wird verwendet, um die im angegebenen Element vorhandenen Elemente zu sortieren Liste der Sammlung in aufsteigender Reihenfolge. Es funktioniert ähnlich wie java.util.Arrays.sort() Methode, aber sie ist besser als die, da sie die Elemente des Arrays sowie der Warteschlange für verknüpfte Listen und viele weitere darin vorhandene Elemente sortieren kann.

public static void sort(List myList)  

myList : A List type object we want to sort.

This method doesn't return anything

Beispiel:

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

Sortieren einer ArrayList in aufsteigender Reihenfolge



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<String> al = new ArrayList<String>();   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() :n' + al);   }  }  

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

Zeitkomplexität : O(N log N), da die zeitliche Komplexität von Collections.sort() O(nlog(n)) ist.
Hilfsraum : O(1)  

Sortieren einer ArrayList in absteigender Reihenfolge  

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<String> al = new ArrayList<String>();   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() :n' + al);   }  }  

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

Zeitkomplexität: O(N log N), da die Zeitkomplexität von Collections.sort() O(nlog(n)) ist.
Hilfsraum: O(1)  

Sortieren einer ArrayList nach benutzerdefinierten Kriterien. Wir können verwenden Komparatorschnittstelle zu diesem Zweck. 

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<Student>  {   // 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<Student> ar = new ArrayList<Student>();   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<ar.size(); i++)   System.out.println(ar.get(i));   Collections.sort(ar new Sortbyroll());   System.out.println('nSorted by rollno');   for (int i=0; i<ar.size(); i++)   System.out.println(ar.get(i));   }  }  

Ausgabe
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 funktioniert für Arrays, die auch einen primitiven Datentyp haben können. Sammlungen .sort() funktioniert für Objekte wie Sammlungen ArrayList LinkedList usw. Wir können Collections.sort() verwenden, um ein Array zu sortieren, nachdem wir eine ArrayList mit bestimmten Array-Elementen erstellt haben.
 

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() :n' +   colList);   }  }  

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

Arrays.sort() vs. Collections.sort() Zeitkomplexität:

Arrays.sort() verwendet einen Dual-Pivot-Quicksort-Algorithmus, der eine Zeitkomplexität von O(N.log N) ergibt, die typischerweise schneller ist als herkömmliche Quicksort-Algorithmen. Andererseits erstellt Collections.sort() ein Array von Listenelementen, sortiert sie mithilfe eines adaptiven Mergesort-Algorithmus und iteriert über die Liste, um jedes Element an der richtigen Position zu positionieren. Daher erweist sich Arrays.sort() für primitive Datentypen wie int char double usw. als weitaus zeiteffizienter als Collections.sort(). Probleme mit primitiven Datentypen sollten zur besseren Optimierung mithilfe von Arrays.sort() gelöst werden.

Unten finden Sie den Code, um den Unterschied zu demonstrieren:

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<Integer> 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 

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

Der Artikel soll den geschätzten Geeks nützlich sein. .