إعلان
دورة تطوير التطبيقات باستخدام لغة 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 الإنترفيس SortedMap في جافا

    مقدمة

    الإنترفيس SortedMap يرث من الإنترفيس Map. تم بناءه لتخزين العناصر بشكل Key / Value, و بترتيب تصاعدي ( Ascending ).

    إذاً هنا كل عنصر يتم تخزينه يملك كائنين: الأول عبارة عن مفتاح ( key ) و الثاني عبارة قيمة ( value ).

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

    كما أنه يحتوي على دوال جديدة غير موجودة في الإنترفيس Map.


    نظرة عامة

    • بشكل عام, يستخدم لتخزين العناصر بشكل Key / Value.
    • يمكن للمفاتيح المختلفة أن تحتوي على نفس القيمة.
    • يملك دواله الخاصة إضافةً إلى الدوال التي ورثها من الإنترفيس Map.
    • بعض الدوال التي يملكها ترمي الإستثناء UnsupportedOperationException إذا تم استخدامهم بطريقة خاطئة.
    • يرمى الإستثناء ClassCastException في حال كان لا يمكن تحويل نوع الكائن إلى نوع آخر.
    • يرمى الإستثناء NullPointerException في حال تم إضافة القيمة null فيه لأنه لا يقبل القيمة null.
    • يرمى الإستثناء NoSuchElementException في حال كان كائن الـ SortedMap فارغاً و كنت تحاول إرجاع قيمة عنصر من عناصره.

    دوال الإنترفيس SortedMap

    الجدول التالي يحتوي على دوال الإنترفيس SortedMap.

    الدالة مع تعريفها
    public Object firstKey() ترجع مفتاح أول عنصر موجود في الكائن الذي قام باستدعائها.
    ملاحظة: قيمته ستكون أصغر قيمة لأن العناصر في هذا الكائن تترتب فيه بشكل تصاعدي.
    public Object lastKey() ترجع مفتاح آخر عنصر موجود في الكائن الذي قام باستدعائها.
    ملاحظة: قيمته ستكون أكبر قيمة لأن العناصر في هذا الكائن تترتب فيه بشكل تصاعدي.
    public SortedMap headMap(Object end) ترجع كائن نوعه SortedMap يحتوي على جميع عناصر الكائن الذي قام باستدعائها الموجودة قبل الكائن end.
    public SortedMap tailMap(Object Start) ترجع كائن نوعه SortedMap يحتوي على جميع عناصر الكائن الذي قام باستدعائها إبتداءاً من الكائن start حتى آخر عنصر موجود فيه.
    public SortedMap subMap(Object start, Object end) ترجع كائن نوعه SortedMap يحتوي على جميع عناصر الكائن الذي قام باستدعائها إبتداءاً من الكائن start وصولاً إلى الكائن end.
    public Comparator comparator() ترجع كائن نوعه Comparator يمثل الإنترفيس المستخدم في مقارنة العناصر.
    ترجع null في حال لم تقم بتغيير الإنترفيس الإفتراضي.

    مثال شامل

    في المثال التالي قمنا بإنشاء كائن من الكلاس TreeMap و الذي يرث من الإنترفيس SortedMap.
    و قمنا باستخدام جميع دواله التي ذكرناها في الجدول السابق.


    Main.java
    import java.util.TreeMap;
    import java.util.SortedMap;
     
    public class Main {
     
        public static void main(String[] args) {
     
            // sm إسمه TreeSet هنا قمنا بإنشاء كائن من الكلاس
            SortedMap sm = new TreeMap();
     
            // تعمدنا عدم ترتيب القيم من الأصغر إلى الأكبر حتى ترى أنه سيرتبهم بشكل تلقائي .sm هنا قمنا بإضافة 5 قيم في الكائن
            sm.put(11, "Rola");
            sm.put(7, "Rayan");
            sm.put(15, "Sami");
            sm.put(2, "Ahmad");
            sm.put(6, "Mira");
     
            // لاحظ أنه قام بترتيبهم من الأصغر إلى الأكبر .sm هنا قمنا بعرض عناصر الكائن
            System.out.println("All keys/values: " + sm);
     
            // '8' الموجودة قبل المفتاح sm هنا قمنا بعرض جميع عناصر الكائن
            System.out.println("headMap(8):      " + sm.headMap(8));
     
            // '8' إبتداءاً من المفتاح sm هنا قمنا بعرض جميع عناصر الكائن
            System.out.println("tailMap(8):      " + sm.tailMap(8));
     
            // 'إبتداءاً من المفتاح '1' وصولاً إلى المفتاح '10 sm هنا قمنا بعرض جميع عناصر الكائن
            System.out.println("subMap(1,10):    " + sm.subMap(1, 10));
     
            // sm هنا قمنا بعرض أول مفتاح موجود في الكائن
            System.out.println("First key:       " + sm.firstKey());
     
            // sm هنا قمنا بعرض آخر مفتاح موجود في الكائن
            System.out.println("Last key:        " + sm.lastKey());
     
            // هنا قمنا بعرض الإنترفيس المستخدم في مقارنة العناصر
            System.out.println("Comparator():    " + sm.comparator());
     
        }
     
    }
    		

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

    All keys/values: {2=Ahmad, 6=Mira, 7=Rayan, 11=Rola, 15=Sami}
    headMap(8):      {2=Ahmad, 6=Mira, 7=Rayan}
    tailMap(8):      {11=Rola, 15=Sami}
    subMap(1,10):    {2=Ahmad, 6=Mira, 7=Rayan}
    First key:       2
    Last key:        15
    Comparator():    null
    		
    إعلان

    Eqla3Tech.com

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

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

    الدورات

    أدوات مساعدة

    الأقسام

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