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

    مقدمة

    الكلاس Stack يرث من الكلاس Vector و هو يطبق مبدأ LIFO ( Last In First Out ), أي العنصر الذي يدخل في الأخير يخرج في الأول.

    بما أنه يرث من الكلاس Vector فهذا يعني أنه يملك جميع الدوال الموجودة فيه.

    هنا يتم تخزين العناصر بشكل عامودي, حيث أن العناصر تترتب فيه من الأسفل إلى الأعلى.
    إذاً عند إضافة عنصر ( كائن ), سيتم تخزينه في أعلى الـ Stack. و عند حذف عنصر, سيتم حذف العنصر الموجود في الأعلى أيضاً.
    بما أنه لا يمكن التعامل معه إلا من الأعلى فهذا يعني أنه يمكن الوصول فقط للعنصر الموجود في أعلى الـ Stack.


    ننصحك بمشاهدة هذا الفيديو حتى تفهم طريقة تخزين الكائنات و استرجاعها في الـ Stack.

    دوال الكلاس Stack

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

    الدالة مع تعريفها
    public boolean empty() تفحص كائن الـ Stack لمعرفة إذا كان يحتوي على عناصر أم لا.
    ترجع false في حال كان كائن الـ Stack لا يزال يحتوي على عناصر.
    public Object peek() ترجع العنصر الموجود في أعلى كائن الـ Stack, بدون أن تحذفه.
    public Object pop() ترجع العنصر الموجود في أعلى كائن الـ Stack, و تحذفه منه.
    public Object push(Object element) تضع الكائن الذي نمرره لها كـ Argument في أعلى كائن الـ Stack, و ترجعه أيضاً.
    public int search(Object element) تبحث عن الكائن الذي نمرره لها كـ Argument في جميع عناصر كائن الـ Stack.
    في حال تم إيجاد تطابق, ترجع رقمه التراتبي بالنسبة للعناصر الموجودة في كائن الـ Stack.
    في حال عدم إيجاد تطابق, ترجع 1-

    مثال شامل

    في المثال التالي قمنا بتعريف كائن نوعه Stack ثم أدخلنا فيه أربعة عناصر A - B - C - D.

    بعدها قمنا بالبحث عنهم بداخل كائن الـ Stack حتى نعرف مكان وجودهم بداخله, أي كيف تم ترتيبهم.
    قمنا أيضاً بالبحث عن كائنات غير موجودة في الـ Stack حتى نرى النتيجة التي ترجع لنا عند البحث عن قية غير موجودة فيه.

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


    Main.java
    import java.util.Stack;          // Stack هنا قمنا باستدعاء الكلاس
     
    public class Main {
     
        public static void main(String[] args) {
     
            // s إسمه Stack هنا قمنا بتعريف كائن نوعه
            Stack s = new Stack();
     
            // s هنا قمنا بإضافة 4 عناصر في الكائن
            s.push("A");
            s.push("B");
            s.push("C");
            s.push("D");
     
            // s هنا قمنا بالبحث عن أماكن الكائنات التي أدخلناها في الكائن
            System.out.println("Search result for the object 'A': " + s.search("A"));
            System.out.println("Search result for the object 'B': " + s.search("B"));
            System.out.println("Search result for the object 'C': " + s.search("C"));
            System.out.println("Search result for the object 'D': " + s.search("D") + "\n");
     
            // -و بالتالي ستكون نتيجة البحث 1 v هنا قمنا بالبحث عن كائنات غير موجوة في الكائن
            System.out.println("Search result for the object 'X': " + s.search("X"));
            System.out.println("Search result for the object 'Y': " + s.search("Y") + "\n");
     
            System.out.println("All elements in the stack:");
     
            // ليس فارغاً. سيتم عرض و حذف كل عنصر تمر عليه s هنا أنشأنا حلقة تستمر في تكرار نفسها طالما أن الكائن
            while( !s.empty() ) {
                System.out.println(s.pop());
            }
     
        }
     
    }
    		

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

    Search result for the object 'A': 4
    Search result for the object 'B': 3
    Search result for the object 'C': 2
    Search result for the object 'D': 1
    
    Search result for the object 'X': -1
    Search result for the object 'Y': -1
    
    All elements in the stack:
    D
    C
    B
    A
    		
    إعلان

    Eqla3Tech.com

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

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

    الدورات

    أدوات مساعدة

    الأقسام

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