Javaكلاسات الـ Data Structure الجاهزة في جافا
- مفهوم هيكلة البيانات
- الكلاس
Vector
- الإنترفيس
Enumeration
- الكلاس
Stack
- الكلاس
Hashtable
- الكلاس
Properties
مفهوم هيكلة البيانات
Data Structure تسمى هيكلة البيانات أو بنية البيانات في اللغة العربية, و هي تعني طريقة تخزين أو ترتيب البيانات في الذاكرة بشكل يسهل عملية حفظها أو إسترجاعها.
في جافا يوجد مجموعة كبيرة من الكلاسات (Classes) و الإنترفيسات (Interfaces) تستخدم لترتيب الكائنات التي تم إنشاءها أثناء تشغيل البرنامج.
سنشرح في هذا الدرس الكلاسات و الإنترفيسات التالية:
Vector
Enumeration
Stack
Hashtable
Properties
في الدرس التالي ستتعرف أيضاً على مجموعة كبيرة من الكلاسات و الإنترفيسات التي تستخدم في هيكلة البيانات و التي تم وضعها في حزمة تسمى Collection.
الكلاس Vector
الكلاس Vector
يستخدم لإنشاء مصفوفات متطورة مقارنةً مع المصفوفات العادية Arrays, حيث يوفر لك مجموعة من الدوال التي تمكنك من البحث فيها, التشييك على عناصرها, إضافة عناصر جديدة, حذف عناصر منها, و معالجة أكثر من عنصر فيها في نفس الوقت إلخ..
أهم ميزة في المصفوفات التي نوعها Vector
هي أن عدد العناصر فيها غير ثابت, حيث أنه يزيد عند إضافة عنصر جديد فيها و ينقص عند حذف عنصر منها بشكل تلقائي, و هذه الميزة غير موجودة في المصفوفات العادية.
كما أنك تستطيع الوصول للعناصر الموجودة فيها عن طريق أرقام الـ Index التي تعطى بالترتيب لكل عنصر يضاف فيها.
لمزيد من التفاصيل حول الكلاس Vector
تابع القراءة
الإنترفيس Enumeration
الـ Enumeration
هو إنترفيس يستخدم لتخزين عناصر متتالية موجودة في Data Structure معينة دفعة واحدة.
بعدها يمكنه إرجاع هذه العناصر واحداً تلو الآخر بواسطة الدالة nextElement()
.
فعلياً لا يعتبر Data Structure معينة بحد ذاته, لكن بعض الكلاسات و الإنترفيسات الأخرى التي تنتمي لفئة الـ Data Structure تعتمد عليه, مثل الكلاسات Vector
و Properties
.
في الدرس التالي سنتعرف على إنترفيس يشبهه إسمه Iterator
.
لمزيد من التفاصيل حول الإنترفيس Enumeration
تابع القراءة
الكلاس Stack
الكلاس Stack
يرث من الكلاس Vector
, و هو يطبق المبدأ LIFO ( Last In First Out ), أي العنصر الذي يدخل أولاً يخرج أخيراً.
بما أنه يرث من الكلاس Vector
, فهذا يعني أنه يملك جميع الدوال الموجودة فيه.
هنا يتم تخزين العناصر بشكل عامودي, حيث أن العناصر تترتب فيه من الأسفل إلى الآعلى.
إذاً عند إضافة عنصر ( كائن ), سيتم تخزينه في أعلى الـ Stack
. و عند حذف عنصر, سيتم حذف العنصر الموجود في الأعلى أيضاً.
بما أنه لا يمكن التعامل معه إلا من الأعلى فهذا يعني أنه يمكن الوصول فقط للعنصر الموجود في أعلى الـ Stack
.
لمزيد من التفاصيل حول الكلاس Stack
تابع القراءة
الكلاس Hashtable
الكلاس Hashtable
يستخدم لتخزين الكائنات بشكل Key / Value حيث يتم إعطاء مفتاح لكل قيمة يتم تخزينها بداخل الـ Hashtable
.
هنا كل قيمة يتم تخزينها في الـ Hashtable
يجب إعطاءها Key غير مستخدم, لأن كل Key موضوع يسمح لك بالوصول لقيمة واحدة من القيم الموجودة في الـ Hashtable
.
إذاً الـ Hashtable
كأنه جدول يتألف من عامودين, الأول يحتوي المفاتيح ( Keys ) و الثاني يحتوي على القيم ( Values ).
إذاً هنا كل عنصر يضاف في الـ Hashtable
يجب أن يحتوي على كائنين, الأول يمثل المفتاح و الثاني يمثل قيمته.
لمزيد من التفاصيل حول الكلاس Hashtable
تابع القراءة
الكلاس Properties
الكلاس Properties
يرث من الكلاس Hashtable
و هو يستخدم أيضاً لتخزين العناصر بشكل Key / Value.
بما أنه يرث من الكلاس Hashtable
, فهذا يعني أنه يملك جميع الدوال الموجودة فيه.
الفرق الأساسي بين الكلاس Properties
و الكلاس Hashtable
هو أن الكلاس Properties
يمكنه فقط تخزين Keys و Values من النوع String
.
بالإضافةً إلى أن الكلاس Properties
يحتوي على دوال جاهزة للتعامل مع الملفات.
لمزيد من التفاصيل حول الكلاس Properties
تابع القراءة