إعلان
دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

    Java الكلاس TreeSet في جافا

    مقدمة

    الكلاس TreeSet يعتبر الكلاس الأكثر تطوراً بين كلاسات المجموعة Set, و هو يستخدم لتخزين عناصر متتالية, و ترتيبهم بالطريقة التي تريد, كما أنه يسمح بتخزين القيمة null, لكنه لا يسمح بتخزين أكثر من عنصر عندهم نفس القيمة, فتجد كل عنصر فيه يملك قيمة مختلفة. و هو يحتوي على دوال أخرى تسهل طريقة الوصول للعناصر.


    طريقة ترتيب العناصر

    إفتراضياً, في حال كانت قيم العناصر تمثل أرقام, عندها يتم ترتيبهم من العدد الأصغر إلى العدد الأكبر.
    أما في حال كانت قيم العناصر تمثل نصوص أو كلمات أو أحرف, عندها يتم ترتيبهم ترتيباً أبجدياً.

    كما يمكنك تحديد طريقة ترتيب العناصر بنفسك.


    بناؤه

    public class TreeSet<E>
    extends AbstractSet<E>
    implements NavigableSet<E>, Cloneable, Serializable
    	

    إذاً الكلاس TreeSet يرث من الكلاس AbstractSet, و يطبق الإنترفيسات NavigableSet - Cloneable - Serializable.

    كونستركتورات الكلاس TreeSet

    الجدول التالي يحتوي على جميع الكونستركتورات الموجودين في الكلاس TreeSet.

    الكونستركتور مع تعريفه
    public TreeSet() هذا الكونستركتور الإفتراضي في الكلاس TreeSet, يستخدم لإنشاء كائن نوعه TreeSet فارغ يرتب العناصر التي يتم إدخالها فيه بشكل تصاعدي Ascending.
    public TreeSet(Collection c) يستخدم هذا الكونستركتور لإنشاء كائن نوعه TreeSet يحتوي على عناصر كائن الـ Collection الذي نمرره له كـ Argument.
    public TreeSet(SortedSet ss) يستخدم هذا الكونستركتور لإنشاء كائن نوعه TreeSet يحتوي على عناصر كائن الـ SortedSet الذي نمرره له كـ Argument.
    public TreeSet(Comparator c) يستخدم هذا الكونستركتور لإنشاء كائن نوعه TreeSet فارغ يرتب العناصر التي يتم إدخالها فيه على أساس كائن الـ Comparator الذي نمرره له كـ Argument.
    إذاً c عبارة عن كائن نوعه Comparator يمثل الطريقة التي سيعتمدها كائن الـ TreeSet في مقارنة قيم عناصره.

    دوال الكلاس TreeSet

    الجدول التالي يحتوي على جميع دوال الكلاس TreeSet.

    الدالة مع تعريفها
    public boolean add(Object o) تضيف عنصر جديد في كائن الـ TreeSet.
    ترجع true إذا تمت الإضافة بنجاح.
    public boolean addAll(Collection c) تضيف جميع عناصر الكائن c في آخر كائن الـ TreeSet.
    ترجع true إذا تمت الإضافة بنجاح.
    ترمي الإستثناء NullPointerException في حال كان الكائن c فارغاً.
    public boolean remove(Object o) تحذف عنصر محدد من كائن الـ TreeSet و ترجعه.
    ترجع true إذا تم حذف الكائن بنجاح, غير ذلك ترجع false.
    public void clear() تمسح جميع العناصر الموجودة في كائن الـ TreeSet.
    public Object clone() تنشئ نسخة من كائن الـ TreeSet.
    public boolean contains(Object o) ترجع true في حال كان كائن الـ TreeSet يحتوي على القيمة التي نضعها لها كـ Argument.
    public boolean isEmpty() ترجع true في حال كان كائن الـ TreeSet فارغاً.
    public int size() ترجع عدد العناصر الموجودة في كائن الـ TreeSet.
    public Object first() ترجع قيمة أول عنصر موجود في كائن الـ TreeSet.
    ملاحظة: قيمته ستكون أصغر قيمة لأن العناصر في هذا الكائن تترتب فيه بشكل تصاعدي.
    public Object last() ترجع قيمة آخر عنصر موجود في كائن الـ TreeSet.
    ملاحظة: قيمته ستكون أكبر قيمة لأن العناصر في هذا الكائن تترتب فيه بشكل تصاعدي.
    public SortedSet headSet(Object end) ترجع كائن نوعه SortedSet يحتوي على جميع عناصر كائن الـ TreeSet الذي قام باستدعائها الموجودة فيه قبل الكائن end.
    public SortedSet tailSet(Object Start) ترجع كائن نوعه SortedSet يحتوي على جميع عناصر كائن الـ TreeSet الذي قام باستدعائها إبتداءاً من الكائن start حتى آخر عنصر موجود فيه.
    public SortedSet subSet(Object start, Object end) ترجع كائن نوعه SortedSet يحتوي على جميع عناصر كائن الـ TreeSet الذي قام باستدعائها إبتداءاً من الكائن start وصولاً إلى الكائن end.
    public Comparator comparator() ترجع كائن نوعه Comparator يمثل الإنترفيس المستخدم في مقارنة العناصر.
    ترجع null في حال لم تقم بتغيير الإنترفيس الإفتراضي.
    public Iterator iterator() ترجع كائن نوعه Iterator يحتوي على جميع عناصر كائن الـ TreeSet.

    مثال شامل

    في المثال التالي قمنا بإنشاء كائن من الكلاس TreeSet, إسمه ts, أدخلنا فيها 5 عناصر عبارة عن أرقام.
    بعدها قمنا باستخدام بعض الدوال التي ذكرناها في الجدول السابق.


    Main.java
    import java.util.TreeSet;		// TreeSet هنا قمنا باستدعاء الكلاس
     
    public class Main {
     
        public static void main(String[] args) {
     
            // ts إسمه TreeSet هنا قمنا بإنشاء كائن من الكلاس
            TreeSet ts = new TreeSet();
     
            // تعمدنا عدم ترتيب القيم من الأصغر إلى الأكبر حتى ترى أنه سيرتبهم بشكل تلقائي .ts هنا قمنا بإضافة 5 قيم في الكائن
            ts.add(4);
            ts.add(2);
            ts.add(5);
            ts.add(3);
            ts.add(1);
     
            // لاحظ أنه قام بترتيبهم من الأصغر إلى الأكبر .ts هنا قمنا بعرض عناصر الكائن
            System.out.println("All elements : " + ts);
     
            // ts هنا قمنا بعرض أول عنصر موجود في الكائن
            System.out.println("First element: " + ts.first());
     
            // ts هنا قمنا بعرض آخر عنصر موجود في الكائن
            System.out.println("Last element : " + ts.last());
     
            // '3' الموجودة قبل العنصر الذي يملك القيمة ts هنا قمنا بعرض جميع عناصر الكائن
            System.out.println("headSet(3)   : " + ts.headSet(3));
     
            // '3' إبتداءاً من العنصر الذي يملك القيمة ts هنا قمنا بعرض جميع عناصر الكائن
            System.out.println("tailSet(3)   : " + ts.tailSet(3));
     
            // 'إبتداءاً من العنصر الذي يملك القيمة '1' وصولاً إلى ما قبل العنصر الذي يملك القيمة '4 ts هنا قمنا بعرض جميع عناصر الكائن
            System.out.println("Subset(1,4)  : " + ts.subSet(1, 4));
     
            // هنا قمنا بعرض الإنترفيس المستخدم في مقارنة العناصر
            System.out.println("Comparator() : " + ts.comparator());
     
        }
     
    }
    		

    سنحصل على النتيجة التالية عند التشغيل.

    All elements : [1, 2, 3, 4, 5]
    First element: 1
    Last element : 5
    headSet(3)   : [1, 2]
    tailSet(3)   : [3, 4, 5]
    Subset(1,4)  : [1, 2, 3]
    Comparator() : null
    		
    إعلان

    Eqla3Tech.com

    شروحات مكتوبة حول لغات البرمجة و تقنية المعلومات باللغة العربية مقدمة من إقلاع تك.

    لغة جافا لغة ++C قواعد البيانات نظام ويندوز نظام لينكس الشبكات تقنية المعلومات الأمن السيبراني

    الدورات

    أدوات مساعدة

    الأقسام

    دورات
    مقالات أسئلة مشاريع كتب