بسم الله الرحمن الرحيم
نعلم أن أكثر شيء أهميةً للمبرمج هو اختيار نمط المعطيات فإن عليه تتوقف ثلاث نقاط أساسية ألا و هي :
Memory usage مقدار استهلاك الذاكرة .
Storage Time زمن التخزين .
Retrieval time زمن الاستعادة .
لأن هذه العوامل الثلاث تؤثر بشكل كبير على نجاح التطبيق أو فشله
صحيح أنه ليس بإمكاننا أن نحصل على التطبيق الذي يجمع بشكل تام هذه العوامل الثلاث لكننا نحاول قدر الامكان أن نقترب من الأمثلية وذلك يتمثل باختيارناالصحيح لنمط المعطيات المناسب
Collectionفعلى سبيل المثال يوجد في جافا الكثير من أنماط المعطيات الجاهزةالمبرمجة سابقاً وأهمها المجموعات
وبقي علينا أن نختار من بين هذه المجموعات ما يناسب برنامجنا ,
حيث تصنف المجموعات إلى أربع أقسام رئيسيّة وهي تمثل واجهات في جافاوهي :
A Collection أولآً المجموعة
حيث عناصرها لا تخضع لترتيب معين , ومن الممكن أن يكون فيها عنصر مكرر أكثر من مرة .
A list ثانياً القائمة
وتخضع فيهاالعناصر لترتيب معين , ومن الممكن أن يتكرر فيها العنصر .
A set ثالثاً
عناصرها لا تخضع لأي ترتيب , و لا يمكن أن يتكرر عنصر فيها لأكثر من مرة واحدة أبداً , وكما أنها تقبل القيمة nullالخاصة الفارغة
A map رابعاً
وهي تدعم البحث عن العناصر وفق مفتاح قيمته يجب أن تكون فريدة .
ولكي تقوم جافا بتسهيل الأمور علينا أكثر قد قامت ب
(تحقيق)Implement for each one of this interfaces
Classesوإليكم بعض أشهر هذه الصفوف ::
HashSet :
It is an implement for the set interface ,
لتخزين عناصرها , وطبعاً هي لا تسمح بالقيم المكررة.hashingوهي تستخدم تابع تقطيع
-------------------------------
LinkedList:
It is an implementation for the list interface ,
Linked-listوتعتمد طريقة التخزين فيها على طريقة اللوائح المتصلة
إذا كنت تقوم بعمليات بحث كثيرة لا يفضّل استعمالها لأن عناصرها بالأصل غير مرتبة وبالتالي سوف تستهلك عملية البحث وقتاً معتبر مقارنة بغيرها من الصفوف التي تدعم البحث .
-------------------------------
TreeMap:
It is an indirect implement for the map interface
حيث العناصر التي تخزن فيها يجب أن تكون قابلة للترتيب , ويتم ذلك بأن تكون العناصر التي نريد تخزينها فيها Exception , وإلا سيتم اطلاق استثناء في زمن التنفيذ Comparable محققة للواجهه
والصفة المميزة لهذا الصف هو أن زمن تخزين و استعادة المعطيات فيه هو زمن ثابت نسبياً بالنسبة لكمية كبيرة من )log(n)المعطيات (فدرجة تعقيد هذا الصف من رتبة
-------------------------------
Vector :
It is an implement for list interface
حيث تستخدم ضمنياً مصفوفة عادية وفي حال زاد عدد العناصر عن حجم هذه المصفوفة فإنها تقوم بشكل آلي بحجز مكان أكبر .
والكثير الكثير من الصفوف الجاهزة ,فما عليناإلا حسن الاختيار ...
( مع جزيل الشكر لكل مين باله طويل وقرأ هذه الجريدة للآخر ... وكما يقول هاني1 ههههههههههههه )