الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اختيار نمط بنية المعطيات السليم من مميزات المبرمج

مغلق
بدأه joo في 3 سبتمبر 2004 · 1 رد · 553 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

نعلم أن أكثر شيء أهميةً للمبرمج هو اختيار نمط المعطيات فإن عليه تتوقف ثلاث نقاط أساسية ألا و هي :

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 ههههههههههههه )

#2

شكراً على المقالة ....

كنت أتمنى أن أجد أمثلة (كودية) في نهاية كل جزء ...

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…