اذهب إلى المحتوى
  • 0

الفرق بين ArrayList و LinkedList في جافا

khaled0mohammed

السؤال

Recommended Posts

  • 1

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

import java.util.ArrayList;

ArrayList<String> cars = new ArrayList<String>();

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

كيف تعمل ArrayList
تحتوي فئة ArrayList على مصفوفة منتظمة بداخلها. عند إضافة عنصر ، يتم وضعه في المصفوفة ، إذا لم تكن المصفوفة كبيرة بما يكفي ، يتم إنشاء مصفوفة جديدة أكبر لتحل محل القديم وتتم إزالة المجموعة القديمة.

كيف تعمل LinkedList
تخزن LinkedList عناصرها في "حاويات". تحتوي القائمة على رابط للحاوية الأولى ولكل حاوية رابط إلى الحاوية التالية في القائمة. لإضافة عنصر إلى القائمة ، يتم وضع العنصر في حاوية جديدة وترتبط تلك الحاوية بإحدى الحاويات الأخرى في القائمة.

LinkedList توفر عدة طرق ( وظائف ) للقيام بعمليات معينة بشكل أكثر كفاءة:

  • addFirst () يضيف عنصرًا إلى بداية القائمة.
  • addLast () أضف عنصرًا إلى نهاية القائمة.
  • removeFirst () قم بإزالة عنصر من بداية القائمة.
  • removeLast () قم بإزالة عنصر من نهاية القائمة.
  • getFirst () احصل على العنصر في بداية القائمة.
  • getLast () احصل على العنصر في نهاية القائمة.
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

ArrayList

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

 

LinkedList

LinkedList هو الخيار الأفضل إذا كانت عمليتنا المتكررة هي الإدراج والحذف في المنتصف.
LinkedList هو أسوأ خيار هو أن عمليتنا المتكررة هي عملية الاسترجاع.
في LinkedList ، لن يتم تخزين العناصر في موقع ذاكرة متتالي ، وبالتالي ستكون عملية الاسترجاع معقدة.

الان بالنسبة الى سؤالك نستخدم ArrayList اذا كانت عملية الاسترجاع غالبة على برنامجنا

اما اذا كنت تريد الاضافة والحذف اكثر من طلب البيانات من المصفوفة يفضل استخدام LinkedList

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...