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

    مقدمة

    الإنترفيس Set يرث من الإنترفيس Collection, و هو عبارة عن Collection فكرتها تخزين مجموعة متتالية من العناصر, كل عنصر فيها يملك قيمة مختلفة.

    الفرق الأساسي بينه و بين الإنترفيس List هو أنه لا يمكنه تخزين نفس القيمة في أكثر من عنصر. إذاً هنا لا يمكن وجود نفس القيمة في أكثر من عنصر.

    هذا الإنترفيس مفيد في العلميات الحسابية, حيث أن وجود عناصر لا تحمل نفس القيمة, يتيح لك مقارنة قيمهم بشكل منطقي حتى و لو كانوا مختلفين في النوع.


    نظرة عامة

    • بشكل عام, يستخدم لإنشاء مصفوفة ليس لها حجم محدد.
    • لا يمكنه إحتواء عناصر متكررة, أي لا يمكنه تخزين كائنين عندهم نفس النوع و نفس القيمة.
    • يملك الدوال التي ورثها من الإنترفيس Collection فقط.
    • بعض الدوال التي يملكها ترمي الإستثناء UnsupportedOperationException إذا تم استخدامهم بطريقة خاطئة.
    • يرمى الإستثناء ClassCastException في حال كان لا يمكن تحويل نوع الكائن إلى نوع آخر.

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

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

    الدالة مع تعريفها
    public boolean add(Object o) تضيف كائن جديد في الكائن الذي قام باستدعائها.
    ترجع true إذا تمت الإضافة بنجاح.
    public boolean addAll(Collection c) تضيف جميع العناصر الموجودة في الكائن c بالترتيب في آخر الكائن الذي قام باستدعائها.
    ترجع true إذا تمت الإضافة بنجاح.
    public void clear() تمسح جميع العناصر الموجودة في الكائن الذي قام باستدعائها.
    public boolean contains(Object obj) ترجع true إذا كان الكائن الذي قام باستدعائها يحتوي على الكائن الذي نضعه لها كـ Argument.
    public boolean containsAll(Collection c) ترجع true إذا كان الكائن الذي قام باستدعائها يحتوي على جميع العناصر الموجودة في الكائن c.
    public boolean equals(Object obj) ترجع true في حال كان الكائن الذي قام باستدعائها يتطابق مع الكائن الذي نمرره لها كـ Argument.
    public int hashCode() ترجع الـ Hash Code للكائن الذي قام باستدعائها.
    public boolean isEmpty() ترجع true في حال كان الكائن الذي قام باستدعائها فارغاً.
    public Iterator iterator() ترجع كائن نوعه Iterator يحتوي على جميع عناصر الكائن الذي قام باستدعائها.
    public boolean remove(Object o) تحذف أول عنصر يتم إيجاده في الكائن الذي قام باستدعائها في حال كان يتطابق مع الكائن الذي نمرره لها كـ Argument.
    ترجع true إذا تم حذف العنصر بنجاح.
    public boolean removeAll(Collection c) تحذف مجموعة متتالية من العناصر الموجود في الكائن الذي قام باستدعائها في حال كانت تتطابق مع كائن الـ Collection الذي نمرره لها كـ Argument.
    ترجع true إذا تم حذف جميع العناصر بنجاح.
    public boolean retainAll(Collection c) تبقي عناصر الكائن الذي قام باستدعائها في حال كانت موجودة في عناصر الكائن c الذي نمرره لها كـ Argument, و تحذف جميع العناصر الأخرى.
    public int size() ترجع عدد العناصر الموجودة في كائن الـ Interface.
    public Object[] toArray() ترجع مصفوفة نوعها Object تحتوي على جميع العناصر الموجودة في الكائن الذي قام باستدعائها.
    public Object[] toArray(Object array[]) ترجع مصفوفة نوعها Object تحتوي على جميع عناصر الكائن الذي قام باستدعائها و التي عندها نفس نوع المصفوفة التي نمررها لها كـ Argument.

    مثال شامل

    في المثال التالي قمنا بإنشاء ثلاث كائنات من ثلاث كلاسات مختلفة ترث من الإنترفيس Set.
    لاحظ أننا استخدمنا الدالة add() التي ورثتها الكائنات في الأساس من الإنترفيس Set.

    Main.java
    import java.util.*;		// util هنا قمنا باستدعاء جميع الكلاسات و الإنترفيسات الموجودة في الحزمة
     
    public class Main {
     
        public static void main(String[] args) {
     
            // وضعنا فيه ثلاث كائنات o1 إسمه TreeSet هنا قمنا بإنشاء كائن من الكلاس
            TreeSet o1 = new TreeSet();
            o1.add(1);
            o1.add(2);
            o1.add(3);
     
            // وضعنا فيه ثلاث كائنات o2 إسمه HashSet هنا قمنا بإنشاء كائن من الكلاس
            HashSet o2 = new HashSet();
            o2.add(4);
            o2.add(5);
            o2.add(6);
     
            // وضعنا فيه ثلاث كائنات o3 إسمه LinkedHashSet هنا قمنا بإنشاء كائن من الكلاس
            LinkedHashSet o3 = new LinkedHashSet();
            o3.add(7);
            o3.add(8);
            o3.add(9);
     
            // o3 و o2 و o1 هنا قمنا بعرض محتويات الكائنات
            System.out.println("TreeSet elements:       " + o1);
            System.out.println("HashSet elements:       " + o2);
            System.out.println("LinkedHashSet elements: " + o3);
     
        }
     
    }
    		

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

    TreeSet elements:       [1, 2, 3]
    HashSet elements:       [4, 5, 6]
    LinkedHashSet elements: [7, 8, 9] 
    		
    إعلان

    Eqla3Tech.com

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

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

    الدورات

    أدوات مساعدة

    الأقسام

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