الفرق الرئيسي - ArrayList مقابل LinkedList
المجموعات مفيدة لتخزين البيانات. في المصفوفة العادية ، حجم المصفوفة ثابت. في بعض الأحيان يكون مطلوبًا إنشاء مصفوفات يمكن أن تنمو حسب الحاجة. لغات البرمجة مثل Java لديها مجموعات. إنه إطار يحتوي على مجموعة من الفئات والواجهات. إنه بمثابة حاوية لمجموعة من العناصر. تسمح المجموعات بتخزين وتحديث واسترداد مجموعة من العناصر. يساعد على العمل مع هياكل البيانات مثل القوائم والمجموعات والأشجار والخرائط. القائمة عبارة عن واجهة إطار عمل المجموعة. ArrayList و LinkedList هما فئتان في إطار عمل المجموعات. يقومون بتنفيذ واجهة المجموعة وواجهة القائمة.تتناول هذه المقالة الفرق بين ArrayList و LinkedList. ArrayList هي فئة تقوم بتوسيع AbstractList وتنفذ واجهة القائمة ، والتي تستخدم داخليًا مصفوفة ديناميكية لتخزين عناصر البيانات. LinkedList هي فئة تقوم بتوسيع AbstractSequentialList وتنفذ واجهات List و Deque و Queue ، والتي تستخدم داخليًا قائمة مرتبطة بشكل مزدوج لتخزين عناصر البيانات. هذا هو الفرق الرئيسي بين ArrayList و LinkedList.
ما هي ArrayList؟
يتم استخدام فئة ArrayList لإنشاء مصفوفات ديناميكية. على عكس المصفوفة العادية ، فإن حجم المصفوفة الديناميكية غير ثابت. يُسمح للكائن الذي تم إنشاؤه باستخدام فئة ArrayList بتخزين مجموعة من العناصر في القائمة. تزداد السعة تلقائيًا ، لذلك يمكن للمبرمج إضافة عناصر إلى القائمة. تقوم فئة ArrayList بتوسيع فئة AbstractList التي تقوم بتنفيذ واجهة القائمة. لذلك ، يمكن استخدام أساليب واجهة القائمة بواسطة ArrayList. للوصول إلى العناصر ، يتم استخدام طريقة get ().يمكن استخدام طريقة add () لإضافة عناصر إلى القائمة. يتم استخدام طريقة الإزالة () لإزالة عنصر من القائمة. الرجوع إلى البرنامج أدناه.
الشكل 01: مثال على ArrayList
وفقًا للبرنامج أعلاه ، يتم إنشاء كائن ArrayList. باستخدام طريقة الإضافة ، يمكن إضافة العناصر ديناميكيًا. تتم إضافة العناصر "A" و "B" و "C" و "D" و "E" باستخدام طريقة الإضافة. يتم استخدام طريقة الإزالة لإزالة عنصر من القائمة. عند تمرير 4 إلى طريقة الإزالة ، يتم إزالة الحرف الموجود في الفهرس الرابع وهو "E" من القائمة. عند التكرار خلال القائمة باستخدام حلقة for ، ستتم طباعة الأحرف A و B و C و D.
ما هي LinkedList؟
على غرار ArrayList ، يتم استخدام LinkedList لتخزين عناصر البيانات ديناميكيًا. يُسمح لكائن تم إنشاؤه باستخدام فئة LinkedList بتخزين مجموعة من العناصر في القائمة. تزداد السعة تلقائيًا ، لذلك يمكن للمبرمج إضافة عناصر إلى القائمة. يستخدم داخليًا قائمة مرتبطة بشكل مزدوج لتخزين البيانات. في قائمة مرتبطة بشكل مزدوج ، يتم تخزين البيانات كعقد. كل عقدة تحتوي على رابطين. يشير الارتباط الأول إلى العقدة السابقة. الرابط التالي يشير إلى العقدة التالية في التسلسل.
توسع فئة LinkedList فئة AbstractSequentialList وتنفذ واجهة List. لذلك ، يمكن استخدام أساليب واجهة القائمة بواسطة LinkedList. يمكن استخدام طريقة get () للوصول إلى عناصر القائمة. يمكن استخدام طريقة add () لإضافة عناصر إلى القائمة. يتم استخدام طريقة الإزالة () لإزالة عنصر من القائمة. الرجوع إلى البرنامج أدناه.
الشكل 02: مثال مع LinkedList
وفقًا للبرنامج أعلاه ، يتم إنشاء كائن من LinkedList. باستخدام طريقة الإضافة ، يمكن إضافة العناصر ديناميكيًا. تتم إضافة العناصر "A" و "B" و "C" و "D" و "E" باستخدام طريقة الإضافة. يتم استخدام طريقة الإزالة لإزالة عنصر من القائمة. عند تمرير 4 إلى طريقة الإزالة ، يتم إزالة الحرف الموجود في الفهرس الرابع وهو "E" من القائمة. عند التكرار باستخدام حلقة for ، ستتم طباعة الأحرف A و B و C و D.
ما هي أوجه التشابه بين ArrayList و LinkedList؟
- كل من ArrayList و LinkedList واجهة قائمة تنفيذ
- يمكن أن يحتوي كل من ArrayList و LinkedList على عناصر مكررة.
- يحافظ كل من ArrayList و LinkedList على ترتيب الإدراج.
ما هو الفرق بين ArrayList و LinkedList؟
ArrayList مقابل LinkedList |
|
ArrayList هي فئة تقوم بتوسيع AbstractList وتنفذ واجهة القائمة التي تستخدم داخليًا مصفوفة ديناميكية لتخزين عناصر البيانات. | LinkedList عبارة عن فئة تقوم بتوسيع قائمة AbstractSequentialList وتنفذ واجهات List و Deque و Queue ، والتي تستخدم داخليًا قائمة مرتبطة بشكل مزدوج لتخزين عناصر البيانات. |
الوصول إلى العناصر | |
الوصول إلى عناصر ArrayList أسرع من LinkedList. | الوصول إلى عناصر LinkedList أبطأ من ArrayList. |
معالجة العناصر | |
معالجة عناصر ArrayList أبطأ من LinkedList. | معالجة عناصر LinkedList أسرع من ArrayList. |
السلوك | |
ArrayList يعمل كقائمة. | LinkedList يعمل كقائمة وقائمة انتظار. |
ملخص - ArrayList مقابل LinkedList
يسمح إطار عمل التجميع بالعمل مع هياكل البيانات مثل القوائم والأشجار والخرائط والمجموعات. القائمة هي واجهة إطار المجموعة. ناقشت هذه المقالة الفرق بين ArrayList و LinkedList. ArrayList هي فئة تقوم بتوسيع AbstractList وتنفذ واجهة القائمة التي تستخدم مصفوفة ديناميكية داخليًا لتخزين عناصر البيانات. LinkedList هي فئة تقوم بتوسيع AbstractSequentialList وتنفذ واجهات List و Deque و Queue ، والتي تستخدم داخليًا قائمة مرتبطة بشكل مزدوج لتخزين عناصر البيانات. هذا هو الفرق بين ArrayList و LinkedList.