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

    مقدمة

    الكلاس LinkedHashMap يرث من الكلاس HashMap تم تصميمه فقط للحفاظ على ترتيب العناصر التي يتم إدخالها فيه.
    و هو يملك نفس الأشياء التي يملكها الكلاس HashMap.

    الكلاس LinkedHashMap يستخدم لتخزين العناصر بشكل Key / Value و الحفاظ على الترتيب الذي تم فيه إدخال هذه العناصر.

    ملاحظة: الـ LinkedHashMap يمكنه إمتلاك مفتاح واحد نوعه null, و يمكن وضع القيمة null كقيمة لأي مفتاح موجود فيه.


    بناؤه

    public class LinkedHashMap<K,V>
    extends HashMap<K,V>
    implements Map<K,V>
    	
    • K يقصد بها نوع الكائنات التي تمثل مفاتيح.
    • V يقصد بها نوع الكائنات التي تمثل قيم.

    إذاً الكلاس LinkedHashMap يرث من الكلاس HashMap, و يطبق الإنترفيسات Map.

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

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

    الكونستركتور مع تعريفه
    LinkedHashMap() هذا الكونستركتور الإفتراضي في الكلاس LinkedHashMap, يستخدم لإنشاء كائن نوعه LinkedHashMap ليس له حجم محدد.
    إذاً في البداية يكون حجمه يساوي 0 لكنه يزيد كلما أضفنا فيه عنصر جديد.
    LinkedHashMap(int size) يستخدم هذا الكونستركتور لتحديد حجم كائن الـ LinkedHashMap الأولي الذي نريده أن يحجز له في الذاكرة.
    الرقم الذي نضعه كـ Argument في هذا الكونستركتور يحدد عدد العناصر التي يمكن أن يحتويها كائن الـ LinkedHashMap, و تذكر أن حجمه يزيد عند الحاجة.
    LinkedHashMap(int size, float fillRatio) يستخدم هذا الكونستركتور لتحديد حجم كائن الـ LinkedHashMap الأولي الذي نريده أن يحجز له في الذاكرة.
    الرقم الذي نضعه مكان الباراميتر size يحدد عدد العناصر التي يمكن أن يحتويها كائن الـ LinkedHashMap, و تذكر أن حجمه يزيد عند الحاجة.
    الرقم الذي نضعه مكان الباراميتر fillRatio يمكن أن يكون بين 0.0f و 1.0f.
    هنا يتم ضرب المتغيرين size و fillRatio ببعضهم, ناتج عملية الضرب يحدد متى سيتم زيادة حجم كائن الـ LinkedHashMap في الذاكرة.
    LinkedHashMap(int size, float fillRatio, boolean order) يستخدم هذا الكونستركتور لتحديد حجم كائن الـ LinkedHashMap الأولي الذي نريده أن يحجز له في الذاكرة, مع تحديد إذا كنا نريد الحفاظ على ترتيب العناصر التي يتم إدخالها فيه.
    الرقم الذي نضعه مكان الباراميتر size يحدد عدد العناصر التي يمكن أن يحتويها كائن الـ LinkedHashMap, و تذكر أن حجمه يزيد عند الحاجة.
    الرقم الذي نضعه مكان الباراميتر fillRatio يمكن أن يكون بين 0.0f و 1.0f.
    هنا يتم ضرب المتغيرين size و fillRatio ببعضهم, ناتج عملية الضرب يحدد متى سيتم زيادة حجم كائن الـ LinkedHashMap في الذاكرة.
    القيمة التي نضعها مكان الباراميتر order تحدد إذا كان سيتم تريتب العناصر في الذاكرة أم لا, إذا مررنا مكانه القيمة true سيتم ترتيبهم.
    LinkedHashMap(Map m) يستخدم هذا الكونستركتور لإنشاء كائن نوعه LinkedHashMap يحتوي على عناصر كائن الـ Map الذي نمرره له كـ Argument.

    دوال الكلاس LinkedHashMap

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

    الدالة مع تعريفها
    Object put(Object key, Object value) تستخدم لإضافة عنصر جديد في كائن الـ LinkedHashMap.
    • key عبارة عن كائن يمثل مفتاح العنصر.
    • value عبارة عن كائن يمثل قيمة العنصر.
    Object putAll(Map m) تضيف جميع عناصر الكائن m الذي نمرره لها كـ Argument في كائن الـ LinkedHashMap.
    Object remove(Object key) تحذف العنصر الذي يملك المفتاح الذي نمرره لها كـ Argument.
    void clear() تمسح جميع العناصر الموجودة في كائن الـ LinkedHashMap.
    Object clone() تنشئ نسخة من كائن الـ LinkedHashMap.
    Object get(Object key) ترجع قيمة المفتاح الذي نمرره لها كـ Argument.
    في حال كان كائن الـ LinkedHashMap لا يحتوي على المفتاح الذي مررناه لها, ترجع القيمة null.
    boolean containsValue(Object value) ترجع true إذا كان كائن الـ LinkedHashMap يحتوي على القيمة التي نضعها لها كـ Argument تماماً مثل الدالة contains().
    معلومة تقنية: هذه الدالة ورثها الكلاس LinkedHashMap من الإنترفيس Map, و فعل لها Override لتستدعي الدالة contains() فقط, لذلك لا يوجد أي فرق بينهما.
    boolean containsKey(Object value) ترجع true إذا كان كائن الـ LinkedHashMap يحتوي على المفتاح الذي نضعه لها كـ Argument.
    Set entrySet() ترجع كائن نوعه Set يملك جميع عناصر ( مفاتيح + قيم ) الكائن الـ LinkedHashMap.
    Set keySet() ترجع كائن نوعه Set يملك جميع مفاتيح الكائن الـ LinkedHashMap.
    Collection values() ترجع كائن نوعه Collection يملك جميع قيم الكائن الـ LinkedHashMap.
    boolean isEmpty() ترجع true في حال كان كائن الـ LinkedHashMap فارغاً.
    int size() ترجع عدد العناصر الموجودة في كائن الـ LinkedHashMap.

    مثال شامل

    في المثال التالي قمنا بتعريف كائن نوعه LinkedHashMap, إسمه lhm, ثم أدخلنا فيه 12 عنصر.

    بعدها قمنا بتخزين جميع المفاتيح في كائن نوعه Iterator, إسمه keys.
    و قمنا أيضاً بتخزين جميع القيم في كائن نوعه Iterator, إسمه values.

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

    في الأخير قمنا بالبحث عن قيمة مفتاح أدخالناه سابقاً.


    Main.java
    import java.util.LinkedHashMap;        // LinkedHashMap هنا قمنا باستدعاء الكلاس
    import java.util.iterator;             // iterator هنا قمنا باستدعاء الإنترفيس
     
    public class Main {
     
        public static void main(String[] args) {
     
            // و الذي سنضع فيه كود البلد و إسمه lhm إسمه LinkedHashMap هنا قمنا بإنشاء كائن نوعه
            LinkedHashMap lhm = new LinkedHashMap();
     
            // كل عنصر يحتوي على كود البلد كمفتاح و إسمه كقيمة . لاحظ لاحقاً أنه سيتم عرضهم بنفس الترتيب الذي أدخلوا فيه .lhm هنا قمنا بإضافة 12 عنصر في الكائن
            lhm.put("+961", "Lebanon");
            lhm.put("+962", "Jordan");
            lhm.put("+963", "Syria");
            lhm.put("+964", "Iraq");
            lhm.put("+965", "Kuwait");
            lhm.put("+966", "KSA");
            lhm.put("+967", "Yaman");
            lhm.put("+968", "Oman");
            lhm.put("+970", "Palestine");
            lhm.put("+212", "Morocco");
            lhm.put("+281", "Libya");
            lhm.put("+20",  "Egypt");
     
            // أي وضعنا اكواد البلاد فيه .keys بداخل الكائن lhm هنا قمنا بتخزين جميع مفاتيح الكائن
            Iterator keys = lhm.keySet().iterator();
     
            // أي وضعنا أسماء البلاد فيه .values بداخل الكائن lhm هنا قمنا بتخزين جميع قيم الكائن
            Iterator values = lhm.values().iterator();
     
            System.out.println("The table below contains all Codes & Countries \n");
            System.out.println("---------------------");
            System.out.println("Code \t | Country");
            System.out.println("---------------------");
     
            // لا يزال يحتوي على مفاتيح keys هنا أنشأنا حلقة تستمر في تكرار نفسها طالما أن الكائن
            // الفكرة هنا المرور على جميع المفاتيح الموجودة و عرض كل مفتاح موجود و قيمته
            while( keys.hasNext() ) {
                System.out.println(keys.next() + "\t | " + values.next());
            }
            System.out.println("---------------------\n");
     
     
            // KSA هنا قمنا بالبحث عن إسم البلد الذي يملك الكود 996+ فكان الجواب
            System.out.println("Which Country use the code +966 ?");
            System.out.println(lhm.get("+966"));
     
        }
     
    }
    		

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

    The table below contains all Codes & Countries
    
    ---------------------
    Code     | Country
    ---------------------
    +961     | Lebanon
    +962     | Jordan
    +963     | Syria
    +964     | Iraq
    +965     | Kuwait
    +966     | KSA
    +967     | Yaman
    +968     | Oman
    +212     | Morocco
    +970     | Palestine
    +281     | Libya
    +20      | Egypt
    ---------------------
    
    Which Country use the code +966 ?
    KSA 
    		
    إعلان

    Eqla3Tech.com

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

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

    الدورات

    أدوات مساعدة

    الأقسام

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