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

    مقدمة

    الإنترفيس ListIterator يرث من الإنترفيس Iterator, و يملك دوال إضافية للتعامل مع العناصر المخزنة.

    إذاً يستخدم أيضاً لتخزين عناصر متتالية موجودة في أي كائن دفعة واحدة.
    بعدها يمكن إرجاع هذه العناصر واحداً تلو الآخر.

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


    طريقة استخدامه

    هناك ثلاث مراحل أساسية عند التعامل مع الإنترفيس ListIterator:

    1. جلب عناصر أي كائن تريد بواسطة الدالة ListIterator() و تخزينهم مباشرةً في كائن من الإنترفيس ListIterator.
    2. إنشاء حلقة تمر على جميع العناصر الموجودة في كائن الـ ListIterator بواسطة الدالة hasNext() أو hasPrevious().
    3. الحصول على عنصر واحد من العناصر الموجودة في كائن الـ ListIterator بواسطة الدالة next() أو previous().

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

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

    الدالة مع تعريفها
    public void add(Object obj) تضيف الكائن الذي نمرره لها كـ Argument في الكائن الذي قام باستدعائها.
    ملاحظة: إذا قمت باستدعاء الدالة next() قبل استدعائها, عندها سيتم إضافة الكائن obj بعد أخر كائن أرجعته الدالة next().
    public boolean hasNext() ترجع true في حال كان كائن الـ ListIterator يملك عنصر أو أكثر بعد العنصر الحالي.
    public boolean hasPrevious() ترجع true في حال كان كائن الـ ListIterator يملك عنصر أو أكثر قبل العنصر الحالي.
    public Object next() ترجع العنصر التالي الموجود في كائن الـ ListIterator, ترجعه كـ Object.
    public int nextIndex() ترجع Index العنصر التالي الموجود في كائن الـ ListIterator.
    في حال تم المرور على جميع عناصر كائن الـ ListIterator ترجع Index آخر عنصر تم الوصول إليه.
    public Object previous() ترجع العنصر السابق الموجود في كائن الـ ListIterator, ترجعه كـ Object.
    public int previousIndex() ترجع Index العنصر السابق الموجود في كائن الـ ListIterator.
    ترجع 1- في حال لم يتم الوصول إلى أي عنصر قبل استدعائها.
    public Object remove() تحذف العنصر الحالي, أي آخر عنصر تم الوصول إليه قبل استدعائها.
    public void set(Object obj) تضع قيمة الكائن الذي نمرره لها كـ Argument كقيمة جديدة للعنصر الحالي, أي مكان آخر عنصر تم الوصول إليه.

    أمثلة شاملة

    المثال الأول

    في المثال التالي قمنا بإنشاء كائن من الكلاس ArrayList إسمه al, ثم أدخلنا فيه خمسة عناصر.
    بعدها وضعنا جميع عناصر الكائن al في كائن نوعه ListIterator إسمه li.
    في الأخير قمنا بإنشاء حلقة تعرض جميع عناصر الكائن li من العنصر الأول إلى العنصر الأخير.

    قمنا باستخدام الدوال hasNext() و next() في الحلقة حتى نستطيع جلب العنصر التالي في الكائن li في كل دورة.

    Main.java
    import java.util.ArrayList;           // Arrayهنا قمنا باستدعاء الكلاس
    import java.util.ListIterator;        //Iterator هنا قمنا باستدعاء الإنترفيس
     
    public class Main {
     
        public static void main(String[] args) {
     
            // al إسمه Arrayهنا قمنا بإنشاء كائن من الكلاس
            Arrayal = new ArrayList();
     
            // al هنا قمنا بإضافة 5 عناصر في الكائن
            al.add("A");
            al.add("B");
            al.add("C");
            al.add("D");
            al.add("E");
     
            // al وضعنا فيه جميع عناصر الكائن li إسمهIterator هنا قمنا بإنشاء كائن نوعه
           Iterator li = al.listIterator();
     
            // من العنصر الأول إلى العنصر الأخير و تعرض كل عنصر تمر عليه i هنا أنشأنا حلقة تمر على جميع عناصر الكائن
            while(li.hasNext()) {
                System.out.println(li.next());
            }
     
        }
     
    }
    		

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

    A
    B
    C
    D
    E
    		


    المثال الثاني

    في المثال التالي قمنا بإنشاء كائن من الكلاس ArrayList إسمه al, ثم أدخلنا فيه خمسة عناصر.
    بعدها وضعنا جميع عناصر الكائن al في كائن نوعه ListIterator إسمه li.
    في الأخير قمنا بإنشاء حلقة تعرض جميع عناصر الكائن li من العنصر الأخير إلى العنصر الأول.

    قمنا باستخدام الدوال hasPrevious() و previous() في الحلقة حتى نستطيع جلب العنصر السابق في الكائن li في كل دورة.

    Main.java
    import java.util.ArrayList;             // Arrayهنا قمنا باستدعاء الكلاس
    import java.util.ListIterator;          //Iterator هنا قمنا باستدعاء الإنترفيس
     
    public class Main {
     
        public static void main(String[] args) {
     
            // al إسمه Arrayهنا قمنا بإنشاء كائن من الكلاس
            Arrayal = new ArrayList();
     
            // al هنا قمنا بإضافة 5 عناصر في الكائن
            al.add("A");
            al.add("B");
            al.add("C");
            al.add("D");
            al.add("E");
     
            // و حددنا عدد عناصره حتى نستطيع البداية من العناصر الأخير فيه al وضعنا فيه جميع عناصر الكائن li إسمهIterator هنا قمنا بإنشاء كائن نوعه
           Iterator li = al.listIterator(al.size());
     
            // من العنصر الأخير إلى العنصر الأول و تعرض كل عنصر تمر عليه i هنا أنشأنا حلقة تمر على جميع عناصر الكائن
            while(li.hasPrevious()) {
                System.out.println(li.previous());
            }
     
        }
     
    }
    		

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

    E
    D
    C
    B
    A
    		


    المثال الثالث

    في المثال التالي قمنا بإنشاء كائن من الكلاس ArrayList إسمه al, ثم أدخلنا فيه خمسة عناصر.
    بعدها وضعنا جميع عناصر الكائن al في كائن نوعه ListIterator إسمه li.
    في الأخير قمنا بإنشاء حلقتين: الأولى تعرض جميع عناصر الكائن li من العنصر الأول إلى العنصر الأخير, و الثانية تعرضهم بالعكس.

    Main.java
    import java.util.ArrayList;             // Arrayهنا قمنا باستدعاء الكلاس
    import java.util.ListIterator;          //Iterator هنا قمنا باستدعاء الإنترفيس
     
    public class Main {
     
        public static void main(String[] args) {
     
            // al إسمه Arrayهنا قمنا بإنشاء كائن من الكلاس
            Arrayal = new ArrayList();
     
            // al هنا قمنا بإضافة 5 عناصر في الكائن
            al.add("A");
            al.add("B");
            al.add("C");
            al.add("D");
            al.add("E");
     
            // al وضعنا فيه جميع عناصر الكائن li إسمهIterator هنا قمنا بإنشاء كائن نوعه
           Iterator li = al.listIterator();
     
            System.out.println("Ascending sort order:");
     
            // من العنصر الأول إلى العنصر الأخير و تعرض كل عنصر تمر عليه i هنا أنشأنا حلقة تمر على جميع عناصر الكائن
            while(li.hasNext()) {
                System.out.print(li.next()+" ");
            }
     
            System.out.println("\n");
     
            System.out.println("Descending sort order:");
     
            // من العنصر الأخير إلى العنصر الأول و تعرض كل عنصر تمر عليه i هنا أنشأنا حلقة تمر على جميع عناصر الكائن
            while(li.hasPrevious()) {
                System.out.print(li.previous()+" ");
            }
     
        }
     
    }
    		

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

    Ascending sort order:
    A B C D E
    
    Descending sort order:
    E D C B A
    		
    إعلان

    Eqla3Tech.com

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

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

    الدورات

    أدوات مساعدة

    الأقسام

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