أحببت أن أنقل لكم هذا الموضوع من مدونتي
كومان تاليفو (بحب أبسط كل الأخوة الأجانب اليوم متفرنسين حبتين -معنى الجملة كيف الحال-)
بونسوار (على أساس أنا في الليل حالياً)
اليوم حديثي عن فئة ArrayList
هي عبارة عن array عادية مضاف لها بعض الخواص:
1-أنها قابلة للتمدد extending
2-أنها قابلة للإنكماش shrinking
على حسب الحاجة
وذلك بنسخ الarray الحالية إلى واحدة جديدة بعدد عناصر أكبر أو أقل من الحالية
التعامل مع هذه الفئة سهل جداً وسلس إلى أبعد الحدود
كأنك تتعامل مع array مع تعديل على أشكل الأوامر
عملية إضافة عنصر كانت
array =new Element();
وأصبحت
array.add(i,element);
عملية حذف عنصر كانت
array=null;
وأصبحت
array.remove(i,element);
لست بحاجة أن أوصيكم أن تقوموا ببناء كائن من نوع ArrayList واستدعاء المسار java.util
فأنتم أصبحتم كبار قادرين على فعلها لوحدكم
ملاحظة للمحترفين: (إذا كنت لا تعد نفسك أحدهم فالموضوع انتهى بالنسبة لك:()
بالطبع لهذه الفئة فوائدها التي تميزها عن LinkedList وعيوبها التي تميز LinkedList عنها
نبدأ بالفوائد:
1-عمليات الإضافة والحذف فيها تكون تحت وطئة O(1)
2-أسهل في التعامل مع جامع النفايات فعندما تقوم بحذف العنصر لن تحتاج إلى حذف روابطه مع باقي العناصر لكي يفهم الأخ gc أنك تريد التخلص منه
بالنسبة للعيوب:
1-يظهر لكل ذي عيان أن عملية التمدد والإنكماش تؤدي إلى:
أ-لو كان التوسع أكثر من الازم ستكون هناك مساحة من الذاكرة مهدرة بدون فائدة
ب-إذا كان التوسع أقل من اللازم سيودي هذا إلى زيادة في مرات النسخ التي نقوم بها مما يؤدي إلى ضياع المزيد من الوقت بلا طائل
اورفوار (لازم أختم بالفرنسية لغة الرقي والحضارة وكأن لغتنا لغة للمنحطين أو الحرامية -معنى الكلمة مش محتاج إلى توضيح يا عبده الدب-)
أرجو أن يكون الموضوع حاز على إعجابكم
الله معكم
