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