نظرة عامة على List وSet
افهم الفرق بين List وSet من حيث الترتيب والتكرارات والعمليات اليومية. سنضيف العناصر ونحذفها ونبحث فيها ونكرّر عليها باستخدام أمثلة بسيطة.
نظرة عامة على List وSet درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 1 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 3 دروس في المجموع.
ما المقصود بالمجموعات؟
تحتفظ المجموعات بمجموعات من الكائنات. تكون List مرتبة وتعتمد على الفهارس، بينما تركز Set على العضوية والتفرّد. اختاروا بناءً على السؤال الذي تريدون الإجابة عنه: هل تهمكم الترتيبات أم التفرد؟
List أم Set — النقاط الأساسية
- List: تحافظ على ترتيب الإدراج، وتسمح بالتكرارات، وتتيح الوصول باستخدام الفهرس.
- Set: لا تسمح بالتكرارات؛ ولا يضمن HashSet ترتيب العناصر.
- اختاروا List للتسلسلات، وSet لتجنب التكرارات ولإجراء عمليات التحقق من العضوية بسرعة.
الشفرة: أساسيات ArrayList
تحافظ ArrayList على الترتيب وتسمح بالتكرارات. يمكنكم الوصول إلى العناصر باستخدام الفهرس وحذفها حسب القيمة أو الفهرس.
public class Main {
public static void main(String[] args) {
java.util.List<String> items = new java.util.ArrayList<>();
// add elements (duplicates allowed)
items.add("apple");
items.add("banana");
items.add("apple"); // duplicate ok
// access by index
System.out.println(items.get(0)); // apple
// remove by value and by index
items.remove("banana");
items.remove(0); // remove first
// print remaining
System.out.println(items); // [apple]
}
}
العمليات اليومية
العمليات الشائعة:
- add(e)، وremove(e)، وcontains(e)
- size() للحصول على العدد
- التكرار باستخدام الفهرس أو حلقة for المحسّنة
الشفرة: التفرد باستخدام HashSet
يزيل HashSet التكرارات ويجعل التحقق من العضوية سهلًا. وقد تعرض الطباعة العناصر بأي ترتيب.
public class Main {
public static void main(String[] args) {
java.util.Set<String> tags = new java.util.HashSet<>();
tags.add("java");
tags.add("oop");
tags.add("java"); // duplicate ignored
System.out.println("size=" + tags.size()); // 2
// membership check
System.out.println("has oop? " + tags.contains("oop"));
System.out.println(tags); // order not guaranteed
}
}
الشفرة: أنماط التكرار
استخدموا التكرار بالفهرس عند الحاجة إلى معرفة المواضع، واستخدموا enhanced for لسهولة القراءة عندما تحتاجون إلى العناصر فقط.
public class Main {
public static void main(String[] args) {
java.util.List<String> list = new java.util.ArrayList<>();
list.add("A"); list.add("B"); list.add("C");
// classic for with index
for (int i = 0; i < list.size(); i = i + 1) {
System.out.print(list.get(i) + (i < list.size()-1 ? " " : "\n"));
}
// enhanced for (for-each)
for (String s : list) {
System.out.print("[" + s + "]");
}
System.out.println();
}
}
تحقق من List وSet
تحقق سريع: أي العبارات التالية صحيحة بشأن List وSet في Java؟
مراجعة
مراجعة: استخدموا List للتسلسلات المرتبة وSet للعناصر الفريدة وللتحقق من العضوية. للتدرب: حوّلوا List إلى Set لإزالة التكرارات، ثم أعيدوها إلى List إذا كنتم بحاجة إلى الترتيب.
الأسئلة الشائعة
هل درس «نظرة عامة على List وSet» مجاني؟
نعم — نص درس «نظرة عامة على List وSet» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 3 دروس في المجموع.
ماذا ستتعلم في «نظرة عامة على List وSet»؟
افهم الفرق بين List وSet من حيث الترتيب والتكرارات والعمليات اليومية. سنضيف العناصر ونحذفها ونبحث فيها ونكرّر عليها باستخدام أمثلة بسيطة. تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟
لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 3.
كم من الوقت يستغرق درس «نظرة عامة على List وSet»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟
نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- نظرة عامة على List وSet
- Iterators وحلقة for المحسّنة
- أدوات Collections