logo

Цоллецтионс.сорт() у Јави са примерима

 

јава.утил.Цоллецтионс.сорт() метода је присутна у класи јава.утил.Цоллецтионс. Користи се за сортирање елемената присутних у наведеном листа колекције у растућем редоследу. Ради слично као јава.утил.Арраис.сорт() метода, али је боља него јер може сортирати елементе низа као и ред повезаних листа и многе друге присутне у њему.

public static void sort(List myList)  

myList : A List type object we want to sort.

This method doesn't return anything

Пример:

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

Сортирање АрраиЛист у растућем редоследу



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

Излаз
List after the use of Collection.sort() : [Dear Friends Geeks For Geeks Is Superb] 

Временска сложеност : О(Н лог Н) као временска сложеност Цоллецтионс.сорт() је О(нлог(н)).
Помоћни простор : О(1)  

Сортирање АрраиЛист у опадајућем редоследу  

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

Излаз
List after the use of Collection.sort() : [Superb Is Geeks For Geeks Friends Dear] 

Временска сложеност: О(Н лог Н) као временска сложеност Цоллецтионс.сорт() је О(нлог(н)).
Помоћни простор: О(1)  

Сортирање АрраиЛист према кориснички дефинисаним критеријумима. Можемо користити Цомпаратор Интерфаце за ову сврху. 

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

Излаз
Unsorted 111 bbbb london 131 aaaa nyc 121 cccc jaipur Sorted by rollno 111 bbbb london 121 cccc jaipur 131 aaaa nyc 

Низови.сорт() вс Цоллецтионс.сорт() Арраис.сорт ради за низове који такође могу бити примитивног типа података. Збирке .сорт() ради за објекте Колекције попут АрраиЛист ЛинкедЛист итд. Можемо користити Цоллецтионс.сорт() да сортирамо низ након креирања АрраиЛист датих ставки низа.
 

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

Излаз
List after the use of Collection.sort() : [Code Geeks Practice Quiz] 

Арраис.сорт() против Цоллецтионс.сорт() временска сложеност:

Арраис.сорт() користи Дуал-Пивот Куицксорт алгоритам који даје временску сложеност од О(Н.лог Н) што је обично брже од традиционалних Куицксорт алгоритама. Са друге стране, Цоллецтионс.сорт() креира низ елемената листе, сортира их користећи адаптивни алгоритам спајања и итерира преко листе да би позиционирао сваки елемент на његову тачну локацију. Дакле, за примитивне типове података као што је инт цхар доубле итд. Арраис.сорт() се показао много ефикаснијим од Цоллецтионс.сорт(). Проблеме који укључују примитивне типове података треба покушати решити коришћењем Арраис.сорт() ради боље оптимизације.

Испод је код који показује разлику:

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 

Излаз
Time taken by Arrays.sort(): 29 Time taken by Collections.sort(): 42 

Чланак жели да буде користан цењеним штреберима. .