يدرس هذه المقالة بشكل أساسي الاختلافات بين ArrayList و LinkedList والمحتويات ذات الصلة لسيناريوهات الاستخدام في برمجة Java. التفاصيل كما يلي.
1. يتم تنفيذ ArrayList بناءً على صفيف ، ومُنشئها هو:
كائن عابر خاص [] elementData ؛ حجم الباحث الخاص ؛
عند تهيئة ArryList ، يتخلف حجم صفيف ElementData إلى 10 ؛
في كل مرة ADD () ، اتصل أولاً بالاتصال بـ insureCapacity () للتأكد من أن الصفيف لن يتدفق. إذا كان ممتلئًا في هذا الوقت ، فسيتم توسيعه إلى 1.5 مرة + 1 من طول الصفيف ، ثم استخدم طريقة Array.copy لنسخ المصفوفة الأصلية إلى المصفوفة الجديدة ؛
مؤشر ترابط ArrayList غير آمن ، طريقة المتجه متزامنة ، آمنة مؤشرات الترابط ؛
2. يتم تنفيذ LinkedList استنادًا إلى قوائم مزدوجة المرتبطة:
عنصر الكائن ؛ الدخول التالي ، السابق ؛
أثناء التهيئة ، هناك إدخال رأس مع قيمة فارغة ؛
تتمثل ميزة استخدام Header في وجود إدخال ما قبل الدخول وإدخال ما بعد الدخول في أي إدخال (بما في ذلك الأول والأخير) ، لذلك لا يوجد مكان خاص لإجراء عملية إدراج في بداية أو نهاية كائن LinkedList ؛
استخدم السيناريوهات:
(1) إذا كان التطبيق ينفذ عددًا كبيرًا من عمليات الوصول أو الحذف على عناصر في كل موضع فهرس ، فإن كائن ArrayList أفضل بكثير من كائن LinkedList ؛
(2) إذا كان التطبيق يحلق بشكل أساسي القائمة وإدراج أو حذف العملية أثناء الحلقات ، فإن كائن LinkedList أفضل بكثير من كائن ArrayList.
لخص
ما سبق هو كل محتوى هذه المقالة حول الفرق بين ArrayList و LinkedList وتحليل رمز سيناريو الاستخدام. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!