الفرق بين قائمة و ArrayList في جافا

مؤلف: Laura McKinney
تاريخ الخلق: 2 أبريل 2021
تاريخ التحديث: 11 قد 2024
Anonim
LinkedList vs ArrayList in Java | Differences between ArrayList and LinkedList | Edureka
فيديو: LinkedList vs ArrayList in Java | Differences between ArrayList and LinkedList | Edureka

المحتوى


قائمة و ArrayList أعضاء في إطار مجموعة. القائمة عبارة عن مجموعة من العناصر في تسلسل حيث يكون كل عنصر كائنًا ويتم الوصول إلى العناصر بواسطة موضع (فهرس). ينشئ ArrayList صفيفًا ديناميكيًا من الكائنات يزيد أو ينقص الحجم كلما دعت الحاجة. الفرق الأساسي بين قائمة و ArrayList هو ذلك قائمة هي واجهة و ArrayList هي فئة. دعنا ندرس الفرق بين القائمة و ArrayList بمساعدة مخطط المقارنة الموضح أدناه.

  1. رسم بياني للمقارنة
  2. تعريف
  3. الاختلافات الرئيسية
  4. خاتمة

رسم بياني للمقارنة

أساس للمقارنةقائمةArrayList
الأساسيالقائمة هي واجهةArrayList هي فئة قياسية.
بناء الجملةقائمة واجهةالطبقة ArrayList
تمديد / تنفيذقائمة واجهة يمتد مجموعة الإطار.ArrayList يمتد AbstractList وتنفذ قائمة واجهة.
مساحة الاسمSystem.Collections.Generic.System.Collections.
عمليتم استخدامه لإنشاء قائمة بالعناصر (الكائنات) المرتبطة بأرقام الفهرس الخاصة بها.يتم استخدام ArrayList لإنشاء صفيف ديناميكي يحتوي على كائنات.


تعريف القائمة

القائمة هي واجهه المستخدم الذي يمتد مجموعة إطار العمل. تصف واجهة القائمة مجموعة العناصر التي يتم ترتيبها بالتتابع. يتم تنفيذ واجهة القائمة من قبل فئات جمع القياسية التالية ArrayList ، LinkedList ، CopyOnWriteArrayList ، Vector ، المكدس. تحتوي واجهة القائمة على عناصر مرتبطة بأرقام الفهرس الخاصة بها. يمكنك الوصول إلى عنصر في القائمة من خلال موضعه (فهرس) في القائمة. تبدأ القائمة التي تم إنشاؤها باستخدام واجهة القائمة بفهرس قائم على الصفر.

بالإضافة إلى الطرق التي ورثها إطار عمل Collection ، تعرف واجهة القائمة أيضًا بعض الطرق الخاصة بها. الأساليب التي أضافتها واجهة القائمة هي ، إضافة (int ، E) و addAll (int ، Collection). تضيف هذه الطرق عنصرًا إلى القائمة بواسطة الفهرس الخاص بها. الأساليب داخل القائمة قد يلقي استثناء مثل UnsupportedOperationException إذا كان الأسلوب غير قادر على تعديل القائمة. عندما يكون أحد الكائنات في القائمة غير متوافق مع كائن آخر في القائمة ، إذن ClassCastException غير مسموح به. لا يسمح بوجود عناصر خالية في القائمة إذا حاولت إدراج كائن فارغ في القائمة ، NullPointerException هذا خطئ.


يمكنك الحصول على عنصر من القائمة باستخدام احصل على() طريقة، أسلوب. يمكنك تعيين قيمة عنصر في القائمة باستخدام جلس() طريقة، أسلوب. يمكنك أيضًا الحصول على القائمة الفرعية من القائمة باستخدام طريقة قائمة فرعية (). يصبح ملائمًا للعمل في القائمة الفرعية بدلاً من القائمة.

تعريف ArrayList

أحد فئات المجموعة القياسية هو ArrayList الذي يمتد AbstractList الطبقة وتنفذ أيضا قائمة واجهه المستخدم. يتم استخدام فئة ArrayList لإنشاء المصفوفات الحيوية التي تنمو وتتقلص كلما تطلب الأمر ذلك. القائمة التي تم إنشاؤها باستخدام فئة ArrayList ليست سوى مجموعة من الكائنات. في Java ، يكون للصفيف القياسي الطول الثابت ، لذلك ، يجب أن تعرف حجم المصفوفة مسبقًا. ولكن قد يكون الأمر كذلك أنك قد لا تعرف طول الصفيف الذي تحتاجه حتى وقت التشغيل. وبالتالي ، قدم إطار عمل مجموعة ArrayList للتغلب على هذه المشكلة.

يحتوي ArrayList على منشئين يقومون بإنشاء المصفوفة بسعتها الأولية. على الرغم من أن سعة كائن الفئة ArrayList تزداد تلقائيًا عند إضافة عناصر إلى الصفيف ، لا يزال بإمكانك زيادة سعة كائن ArrayList يدويًا باستخدام الطريقة ensureCapacity (). من الأفضل زيادة سعة الصفيف في البداية بدلاً من إعادة تخصيص الذاكرة لاحقًا. لأن إعادة التخصيص أكثر تكلفة من تخصيص الذاكرة مرة واحدة.

  1. واحدة من أهم الاختلافات بين قائمة و ArrayList هو أن القائمة هي واجهه المستخدم و ArrayList هي مجموعة قياسية صف دراسي.
  2. قائمة واجهة يمتد مجموعة إطار بينما يمتد ArrayList AbstractList الطبقة وينفذ قائمة واجهات.
  3. مساحة الاسم لواجهة القائمة هي System.Collection.Generic في حين أن مساحة اسم ArrayList هي System.Collection.
  4. تقوم واجهة القائمة بإنشاء مجموعة من العناصر المخزنة في تسلسل ويتم التعرف عليها أو الوصول إليها بواسطة رقم الفهرس الخاص بها. من ناحية أخرى ، يُنشئ ArrayList صفيفًا من الكائنات حيث يمكن للصفيف أن ينمو ديناميكيًا عند الحاجة.

خاتمة:

يتغلب ArrayList على مشكلة الصفيف الثابت في Java القياسية ، أي أن الصفيف لا يمكن أن ينمو في الحجم بمجرد إنشائه. عند إنشاء صفيف باستخدام ArrayList ، يتم إنشاء صفيف ديناميكي يمكن أن ينمو ويتقلص في الحجم عند الحاجة. يمتد ArrayList فئة Collection القياسية واجهة القائمة.