خاصية "Sort an Array" في لغة جافا تشير إلى عملية ترتيب عناصر المصفوفة، سواءً كانت أرقامًا أو نصوصًا أو أي أنواع بيانات أخرى، بترتيب معين، مثل الترتيب التصاعدي (من الأصغر إلى الأكبر) أو الترتيب التنازلي (من الأكبر إلى الأصغر). توفر جافا أدوات مدمجة لتسهيل هذه العملية، وأهمها هي الطريقة Arrays.sort().

الطريقة Arrays.sort():

تُستخدم هذه الطريقة لترتيب عناصر المصفوفة. تأتي هذه الطريقة مع عدة أشكال (overloads) لتناسب أنواع البيانات المختلفة:

  • Arrays.sort(array): لترتيب مصفوفة من الأنواع الأولية (primitive types) مثل int، char، double، إلخ، بترتيب تصاعدي.
  • Arrays.sort(array, fromIndex, toIndex): لترتيب جزء معين من المصفوفة، حيث fromIndex هو بداية الجزء (شامل) و toIndex هو نهاية الجزء (غير شامل).
  • Arrays.sort(array, Comparator): لترتيب مصفوفة من الكائنات باستخدام كائن Comparator لتحديد كيفية المقارنة بين العناصر. هذا مفيد لترتيب الكائنات بناءً على معايير مخصصة.

أمثلة:

1. ترتيب مصفوفة من الأرقام بترتيب تصاعدي:

Java
import java.util.Arrays;

public class SortArrayExample {
public static void main(String[] args) {
int[] numbers = {5, 2, 8, 1, 9, 4};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers)); // Output: [1, 2, 4, 5, 8, 9]
}
}

2. ترتيب مصفوفة من النصوص بترتيب أبجدي:

Java
import java.util.Arrays;

public class SortStringArray {
public static void main(String[] args) {
String[] names = {"Ali", "Mohammed", "Ahmed", "Khaled"};
Arrays.sort(names);
System.out.println(Arrays.toString(names)); // Output: [Ahmed, Ali, Khaled, Mohammed]
}
}

3. ترتيب جزء من مصفوفة:

Java
import java.util.Arrays;

public class SortSubArray {
public static void main(String[] args) {
int[] numbers = {5, 2, 8, 1, 9, 4};
Arrays.sort(numbers, 1, 4); // ترتيب العناصر من الفهرس 1 حتى 3
System.out.println(Arrays.toString(numbers)); // Output: [5, 1, 2, 8, 9, 4]
}
}

4. ترتيب مصفوفة بترتيب تنازلي باستخدام Collections.reverseOrder():

لترتيب مصفوفة من الكائنات (وليس الأنواع الأولية) بترتيب تنازلي، يمكنك استخدام Collections.reverseOrder() مع Arrays.sort():

Java
import java.util.Arrays;
import java.util.Collections;

public class SortDescending {
public static void main(String[] args) {
Integer[] numbers = {5, 2, 8, 1, 9, 4}; // يجب استخدام Integer بدلاً من int
Arrays.sort(numbers, Collections.reverseOrder());
System.out.println(Arrays.toString(numbers)); // Output: [9, 8, 5, 4, 2, 1]
}
}

ملاحظات مهمة:

  • Arrays.sort() يستخدم خوارزمية Quicksort المزدوجة المحورية (Dual-Pivot Quicksort) للأنواع الأولية، وخوارزمية Mergesort المعدلة لمصفوفات الكائنات، مما يضمن كفاءة الترتيب.
  • عند ترتيب مصفوفة من الكائنات بترتيب تنازلي، يجب استخدام أنواع الكائنات (مثل Integer، String) بدلاً من الأنواع الأولية (مثل int، char).

باستخدام هذه الأدوات، يمكنك بسهولة ترتيب المصفوفات في جافا وفقًا لاحتياجاتك.