الفرز والبحث باستخدام Collections
استخدم Collections.sort وCollections.binarySearch وComparators للفرز والبحث المخصّصين.
الفرز والبحث باستخدام Collections درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 3 دروس في المجموع.
مقدمة
ينظم الفرز البيانات لتسريع البحث. وتحتوي Collections في Java على أداتي sort وbinarySearch المدمجتين.
أساسيات الفرز
ترتّب Collections.sort قائمة List في مكانها. وتستخدم افتراضيًا الترتيب الطبيعي، مثل ترتيب الأرقام تصاعديًا والنصوص من A إلى Z.
الشفرة: الفرز الطبيعي
الترتيب الطبيعي للنوع Integer تصاعدي. وتعدّل sort() قائمة List نفسها.
public class Main {
public static void main(String[] args) {
java.util.List<Integer> nums = new java.util.ArrayList<>();
nums.add(5); nums.add(1); nums.add(3);
java.util.Collections.sort(nums);
System.out.println(nums); // [1,3,5]
}
}
الفرز المخصص
يمكنكم تمرير Comparator إلى sort للفرز بأي ترتيب: عكسي، أو حسب الطول، أو وفق قواعد مخصصة أخرى.
الشفرة: الفرز حسب الطول
يفرز هذا Comparator السلاسل النصية حسب طولها.
public class Main {
public static void main(String[] args) {
java.util.List<String> words = new java.util.ArrayList<>();
words.add("Java"); words.add("C"); words.add("Python");
java.util.Collections.sort(words, (a,b) -> a.length() - b.length());
System.out.println(words); // [C, Java, Python]
}
}
الشفرة: binarySearch
يبحث binarySearch بسرعة عن موضع عنصر، لكن يجب أن تكون القائمة مرتبة مسبقًا وفق الترتيب نفسه.
public class Main {
public static void main(String[] args) {
java.util.List<Integer> nums = new java.util.ArrayList<>();
nums.add(1); nums.add(3); nums.add(5); nums.add(7);
int idx = java.util.Collections.binarySearch(nums, 5);
System.out.println("Index of 5 = " + idx);
}
}
تحقق من binarySearch
تحقق سريع: ما الشرط الذي يجب تحققه قبل استخدام Collections.binarySearch؟
مراجعة
مراجعة: استخدموا sort() للترتيب وbinarySearch() لعمليات البحث السريعة. وتتيح Comparators المخصصة تعريف قواعد فرز مرنة.
الأسئلة الشائعة
هل درس «الفرز والبحث باستخدام Collections» مجاني؟
نعم — نص درس «الفرز والبحث باستخدام Collections» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 3 دروس في المجموع.
ماذا ستتعلم في «الفرز والبحث باستخدام Collections»؟
استخدم Collections.sort وCollections.binarySearch وComparators للفرز والبحث المخصّصين. تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟
لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.
كم من الوقت يستغرق درس «الفرز والبحث باستخدام Collections»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟
نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- Maps وحساب التكرارات
- Comparable مقابل Comparator
- الفرز والبحث باستخدام Collections