java.util.Collections.sort() метод присутній у класі java.util.Collections. Він використовується для сортування елементів, присутніх у вказаному список колекції в порядку зростання. Це працює подібно до java.util.Arrays.sort() метод, але він кращий, ніж оскільки він може сортувати елементи масиву, а також пов’язаний список, чергу та багато іншого, що в ньому присутні.
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'}>
Сортування ArrayList у порядку зростання
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);> > }> }> |
змінні nginx
>
>Вихід
List after the use of Collection.sort() : [Dear, Friends, Geeks For Geeks, Is, Superb]>
Часова складність : O(N log N) як часова складність Collections.sort() становить O(nlog(n)).
Допоміжний простір : O(1)
Сортування ArrayList у порядку спадання
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);> > }> }> |
рядковий масив Java
>
>Вихід
List after the use of Collection.sort() : [Superb, Is, Geeks For Geeks, Friends, Dear]>
Часова складність: O(N log N) як часова складність Collections.sort() дорівнює O(nlog(n)).
Допоміжний простір: О(1)
Сортування ArrayList відповідно до визначених користувачем критеріїв. Ми можемо використовувати Інтерфейс компаратора Для цієї мети.
Java
помилка атрибута python
// 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)); } }> |
>
>Вихід
Unsorted 111 bbbb london 131 aaaa nyc 121 cccc jaipur Sorted by rollno 111 bbbb london 121 cccc jaipur 131 aaaa nyc>
Arrays.sort() проти Collections.sort() Arrays.sort працює для масивів, які також можуть мати простий тип даних. Колекції .sort() працює для таких об’єктів, як колекції ArrayList , LinkedList і т. д. Ми можемо використовувати Collections.sort() для сортування масиву після створення ArrayList заданих елементів масиву.
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);> > }> }> |
>
>Вихід
List after the use of Collection.sort() : [Code, Geeks, Practice, Quiz]>
Часова складність Arrays.sort() проти Collections.sort():
Arrays.sort() використовує алгоритм Dual-Pivot Quicksort, який дає часову складність O(N.log N), що зазвичай швидше, ніж традиційні алгоритми Quicksort. З іншого боку, Collections.sort() створює масив елементів списку, сортує їх за допомогою адаптивного алгоритму Mergesort і повторює список, щоб позиціонувати кожен елемент у правильному місці. Таким чином, для примітивних типів даних, таких як int, char, double тощо, Arrays.sort() виявляється набагато ефективнішим у часі, ніж Collections.sort(). Проблеми, пов’язані з примітивними типами даних, слід спробувати вирішити за допомогою Arrays.sort() для кращої оптимізації.
непорядковий обхід
Нижче наведено код для демонстрації різниці:
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> |
>
>Вихід
Time taken by Arrays.sort(): 29 Time taken by Collections.sort(): 42>
Бажаю, щоб стаття була корисною для шановних гіків. .