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

مقدمة في Data Structure

بدأه saad reda في 28 يناير 2014 · 0 رد · 707 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1
بسم الله الرحمن الرحيم 

هذي أول مقالة لي على منتداكم الرائع والله يكتب اللي فيه خير  :D 

راح اتكلم في هذه المقالة عن Data Structure وسأشرح فيها Collection Interfaca وبإذن الله تكون مدخل وشرح واضح فيه 

 

أول سؤال ممكن يكون على بالك أن هل الـ Data Structure لها علاقة بالـ Database ام لا ؟

 

الإجابة لا ، هناك فرق بين ما يعرف بقواعد البيانات Database ، وبين مفهوم هياكل(تراكيب)البيانات Data Structure .

 

قواعد البيانات هي عملية تخزين البيانات .

 

أما هياكل البيانات هي اللي تحتاجها لأداء برنامج بكفاءة عالية في وقت التنفيذ (خلال الـ runtime).

 

بمعنى أوضح قواعد البيانات أنت تخزن فيها البيانات لأجل أنك لو أغلقت الكمبيوتر تجي اليوم الثاني تلقاها موجودة .

 

فيه فرق بين تخزين بيانات وبين بيانات حية في الذاكرة للتعامل معها .

 

في البرنامج عادة العمليات التي تتم في RunTime تتم على Data Structure. 

 

هياكل البيانات باختصار هي تحليل شكل البيانات شلون تكون داخل الاوبجيكت ونستخدمها لجمع البيانات وترتيبها وتنظيمها ...

 

في جافا فيه اوبجيكت جاهزة لك أنك تستخدمها على طول يعني ما يحتاج تعيد كتابة كل شئ من الصفر مثل ما هو في C و ++C ، كذلك نتكلم 

عن أن هياكل البيانات يأتي معها خوارزميات للترتيب وإعادة الترتيب وصياغة أجزاء البيانات الموجودة ، وهذه الخوارزميات موجودة مع

الاوبجيكت يعني مضغوطة مع الاوبجيكت او الانترفيس اللي راح نتكلم عنه الآن .

 

مركز العمليات هو انترفيس interface رهيب جداً هو الـ Collection .

 

الشكل الأساسي للCollection interface هو أنه يتفرع منه اثنين من الـ interface : وهي Set و List .

 

Set معناها مجموعة من الأشياء أو البيانات لا يوجد فيها تكرار ، واذا جيت في المقالة القادمة بإذن الله سأبين انه ما هو شرط انها

 ما تقبل التكرار اذا كان ConCrete Class لازم تعرف فيه الـ Two Methode الموجوده في كل اوبجيكت اللي هي equals و hashcode .

List معناها مجموعة من الأشياء والبيانات وتسمح بالتكرار وبمزايا أخرى راح نعرفها في وقتها .

 

أيضا يوجد الـ Map Interfaca لكنه ليس من Collection فهو جسم برمجي آخر عبارة عن دمج جسمين مع بعض .

 

نقطة مهمه أن هذه الانترفيس Set و List لا يمكن انك تسوي منها اوبجيكت يعني ما تقدر تسوي من عندها new مثلا new Set أو new List ،

لأنها كأي انترفيس لا تستطيع ان تنشأ منه اوبجيكت والدوال اللي فيه تطبقها كلاسات ConCrete يعني اوبجيكت جاهزة للاستخدام فتستطيع 

إذا تبي : 

 

Set تقدر تستعمل أما HashSet أو TreeSet المطبِّقان له .

 

List تقدر تستعمل أما ArrayList أو LinkedList .

 

Map تقدر تستعمل HashMap أو TreeMap .

 

Tree معناتها Sorted يعني مرتبة حسب ترتيب معين انت حددته سابقاً .

 

ملاحظة : أني اتكلم الآن عن الشكل الأساسي أما الآن في الـ Collection فيه انترفيس جديد Queue وفي Set و List كلاسات أخرى جاهزة 

للاستخدام غير اللي ذكرتهم . يمكنك مشاهدة الصورة في آخر المقالة وتشاهد Collection وتفرعاته .

 

لو أخذنا الشكل الأساسي بشكل مكبر قليلاً نشوف أن Collection مرتبط في شئ اسمه Iteratable و Iterate يعني انه قابل انه يدور 

وايضاً عندي من Iteratable Interface اوبجيكت اسمه --> Iterator وهذا الاوبجيكت اقدر استدعيه عن طريق الكونستراكتور Constructor .

 

Iteratable Interface :

يوجد فيه عملية واحدة فقط اللي هي (()Iterator كونستراكتور) ، يوجد في الاوبجيكت أو كلاس Iterator ثلاث عمليات :

 

()boolean hasNext  

لأجل تحديد الوجه للوب Loop .

 

()boolean next  

يعطيك الأوبجيكت التالي

 

;()void remove 

اذا تبغى تشيل (تحذف) كائن .

 

 

أول شئ الـ collection interface من الباكيج java.util .

 .

ندخل الآن في عمليات الـ collection interface : 

 

1_ Informative Methods تحتوي على : 

 

()Iterator Iterator

عرفناها فوق 

 

()boolean isEmpty

هنا نسأل هل الكولكشن collection فاضي ويرجع لنا true Or false) boolean)

 

()int size

يرجع لنا الحجم .

 

2_ Object Based Methods :

 

(boolean equals(Object o

نستعلمها في المقارنة بين اثنين من الكولكشن .

 

()int hashCode

يرجع لنا الرقم الخاص بالاوبجيكت .

 

3_ Element Based Methods :

(boolean add(Object o 

إذا ابغى اضيف كائن .

 

(boolean remove(Object o 

إذا ابغى احذف كائن .

 

(boolean contins(Object o 

إذا اشيك هل تحتوي على .

 

4_ Output To Arrays Methods :

 

()Object[] toArray

إذا خلصت من الأوبجيكت وابغى احوله إلى ِArrays .

 

( Object[] toArray(Object[] o

نفسها لكنها تحول مصفوفة وترجعها لنا .

5_ Collection Based Methods : 

هذي عمليات خاصة بين كولكشن وكلوكشن مثلا A و B .

 

(boolean addAll(Collection c

تعطي كولكشن تضاف بالكامل على الكولكشن المراده .

 

(boolean containsAll(Collection c 

مثلا هل A تحتوي على كل عناصر B .

 

(boolean removeAll(Collection c 

أنا ممكن اقوله B removeAll A فسيحذف كل العناصر غير الموجودة أو المشتركة .

 

()void clear

راح بنظف A يعني راح يفضيها من الداخل.

 

(boolean retainAll(Collection c

هنا نقوله حافظ على اللي موجود في A و B . 

 

java-collection.jpg

 

هنا اتوقف وان شاء الله الشرح يكون واضح وبإذن الله في أقرب فرصة اني اكون فاضي راح اكمل Data Structure  ونأخذ Set و List والكلاسات المطبقه لها بالتفصيل .

ووفق الله الجميع لكل خير وللعلم النافع ..  :) 

تم تعديل هذه المشاركة بواسطة saad reda في 28 يناير 2014 في 23:48

2

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