--- title: ArrayList localeTitle: ArrayList --- # ArrayList ArrayList هو جزء من شيء يسمى _إطار مجموعة_ . يتكون _إطار المجموعة_ من جميع الواجهات والفئات التي يمكنها الاحتفاظ بمجموعة من القيم (على غرار [المصفوفات](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html) ). **ArrayList** هو فئة في هذا التسلسل الهرمي والمعروفة باسم _**كائن مجموعة**_ . يقوم بتنفيذ واجهة _القائمة_ التي بدورها تنفذ واجهة _المجموعة_ . يمكن العثور على واجهة _المجموعة_ هذه في حزمة `java.util` . سوف تحتاج إلى استيراد هذه الحزمة. ArrayList هو فئة يتم استخدامها لإنشاء صفائف ديناميكية. إنها أبطأ من المصفوفات العادية ولكنها تسمح بالكثير من التلاعب. يمكن أن تتم تهيئة حجم معين أو أن يكون حجمه الافتراضي 10 وحدات. `java ArrayList names = new ArrayList<>(); ArrayList ages = new ArrayList<>(5);` في المقتطف أعلاه ، تأخذ الانعكاسات الزاوية `<>` نوع بيانات عام كوسيطة تحدد نوع بيانات العناصر في ArrayList. يتم تحديد `names` ArrayList الأولى على أنها تحتوي على عناصر _سلسلة_ . وبالتالي ، سيتم السماح لها فقط بتضمين عناصر السلسلة. لم يتم تحديد حجمه بحيث يكون له حجم افتراضي من 10. حدد `ages` ArrayList الثاني أنه سيتم فقط عدد صحيح. لكن ArrayList لا يمكن الاحتفاظ بها الأوليات ، إلا أنه يحمل الأشياء. وبالتالي ، لجعله يخزن الأعداد الصحيحة ، أو العوامات ، إلخ. ، يمكننا استخدام دروس المجمع. سيكون `names` حجم معين من 5. منذ _قائمة_ ArrayList بتنفيذ ، يمكن إنشاء ArrayList باستخدام بناء الجملة التالي: `java List students = new ArrayList<>();` ArrayList ديناميكية ، بمعنى أنها ستنمو بحجم إذا لزم الأمر ، وبالمثل يتقلص الحجم إذا تم حذف العناصر منه. هذا هو ما يجعله أفضل للاستخدام من المصفوفات العادية. يتيح ArrayList لنا الوصول إلى العناصر بشكل عشوائي. ArrayList يشبه _Vector_ في الكثير من الطرق. ولكنها أسرع من المتجهات. أهم شيء هو أن نلاحظ - ناقلات أسرع من المصفوفات ولكن ليس ArrayLists. لذا عندما يتعلق الأمر بالاختيار بين الاثنين - إذا كانت السرعة حرجة ، فيجب اعتبار المتجهات ، وإلا فإن ArrayLists أفضل عندما يتعلق الأمر بتخزين عدد كبير من العناصر والوصول إليها بكفاءة.