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<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]
تعقيد الوقت : O(N log N) حيث أن التعقيد الزمني لـ Collections.sort() هو O(nlog(n)).
الفضاء المساعد : يا(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<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]
تعقيد الوقت: O(N log N) حيث أن التعقيد الزمني لـ Collections.sort() هو O(nlog(n)).
المساحة المساعدة: يا(1)
فرز ArrayList وفقًا للمعايير المحددة من قبل المستخدم. يمكننا استخدامها واجهة المقارنة لهذا الغرض.
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
المصفوفات.الفرز () مقابل Collections.sort() يعمل Arrays.sort مع المصفوفات التي يمكن أن تكون من نوع بيانات بدائي أيضًا. المجموعات .sort() يعمل مع مجموعات مثل الكائنات ArrayList قائمة مرتبطة يمكننا استخدام Collections.sort() لفرز مصفوفة بعد إنشاء ArrayList لعناصر المصفوفة المحددة.
// 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]
Arrays.sort() vs Collections.sort() التعقيد الزمني:
يستخدم Arrays.sort() خوارزمية Quicksort Dual-Pivot التي توفر تعقيدًا زمنيًا قدره 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<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
أتمنى أن يكون المقال مفيدًا للمهوسين الكرام. .