Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

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 تابع القراءة