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

    مقدمة

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

    أهم ميزة في المصفوفات التي نوعها Vector هي أن عدد العناصر فيها غير ثابت, حيث أنه يزيد عند إضافة عنصر جديد فيها و ينقص عند حذف عنصر منها بشكل تلقائي, و هذه الميزة غير موجودة في المصفوفات العادية.

    كما أنك تستطيع الوصول للعناصر الموجودة فيها عن طريق أرقام الـ Index التي تعطى بالترتيب لكل عنصر يضاف فيها.

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

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

    الكونستركتور مع تعريفه
    public Vector() هذا الكونستركتور الإفتراضي في الكلاس Vector, يستخدم لإنشاء كائن نوعه Vector حجمه 10, أي يمكن أن يحتوي على 10 عناصر.
    هنا كلما امتلأ الـ Vector سيحجز مكان لـ 10 عناصر جديدة في الذاكرة.
    public Vector(int size) يستخدم هذا الكونستركتور لتحديد حجم كائن الـ Vector الأولي.
    الرقم الذي نضعه كـ Argument في هذا الكونستركتور يحدد عدد العناصر الذي يمكن أن يحتويه كائن الـ Vector, و يحدد أيضاً عدد العناصر الذي سيحجز له في الذاكرة كلما امتلأ.
    public Vector(int size, int increment) يستخدم هذا الكونستركتور لتحديد حجم كائن الـ Vector الأولي و تحديد كم عنصر جديد سيضاف فيه كلما امتلأ.
    الرقم الذي نضعه مكان الباراميتر size يحدد عدد العناصر الذي يمكن أن يحتويه كائن الـ Vector.
    الرقم الذي نضعه مكان الباراميتر increment يحدد أيضاً عدد العناصر الذي سيحجز له في الذاكرة كلما امتلأ.
    public Vector(Collection c) يستخدم هذا الكونستركتور لإنشاء كائن نوعه Vector يحتوي على عناصر كائن الـ Collection الذي نمرره له كـ Argument.

    دوال الكلاس Vector

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

    الدالة مع تعريفها
    public void add(int index, Object element) تستخدم لإضافة عنصر جديد في مكان محدد في كائن الـ Vector.
    public boolean add(Object o) تستخدم لإضافة عنصر جديد في آخر كائن الـ Vector.
    ترجع true إذا تمت الإضافة بنجاح.
    public boolean addAll(Collection c) تستخدم لإضافة جميع العناصر الموجودين في كائن الـ Collection بالترتيب في آخر كائن الـ Vector.
    ترجع true إذا تمت الإضافة بنجاح.
    public boolean addAll(int index, Collection c) تستخدم لإضافة جميع العناصر الموجودين في كائن الـ Collection بالترتيب في مكان محدد في كائن الـ Vector.
    ترجع true إذا تمت الإضافة بنجاح.
    public void addElement(Object o) تستخدم لإضافة عنصر جديد في آخر كائن الـ Vector مع زيادة عدد العناصر واحداً.
    public int capacity() ترجع حجم كائن الـ Vector المحجوز في الذاكرة.
    public void clear() تمسح جميع العناصر الموجودة في كائن الـ Vector.
    public Object clone() تنشئ نسخة من كائن الـ Vector.
    public boolean contains(Object elem) ترجع true إذا كان كائن الـ Vector يحتوي على الكائن الذي نضعه لها كـ Argument.
    public boolean containsAll(Collection c) ترجع true إذا كان كائن الـ Vector يحتوي على جميع العناصر الموجودة في كائن الـ Collection الذي نضعه لها كـ Argument.
    public void copyInto(Object[] anArray) تنسخ محتوى كائن الـ Vector في مصفوفة من نفس النوع.
    ملاحظة: حجم المصفوفة التي سيتم نسخ القيم فيها يجب أن لا يكون أصغر من حجم كائن الـ Vector. كما أن نوع المصفوفة التي سيتم النسخ فيها يجب أن يتناسب مع نوع القيم المراد تخزينها فيها.
    public Object elementAt(int index) ترجع العنصر الموجود على الـ index الذي نمرره لها كـ Argument.
    public Enumeration elements() ترجع كائن نوع Enumeration يحتوي على جميع عناصر كائن الـ Vector.
    public void ensureCapacity(int minCapacity) تحدد عدد العناصر الأقل الذي يجب أن يحجز للكائن Vector في الذاكرة.
    إذا كان العدد الموضوع فيها أكبر من عدد العناصر المحجوز للكائن Vector, عندها يتم تكبير حجمه.
    إذا كان العدد الموضوع فيها أصغر من عدد العناصر الموجودة في كائن الـ Vector, لن تفعل أي شيء.
    public boolean equals(Object o) تقارن كائن الـ Vector مع أي مصفوفة نمررها لها كـ Argument.
    ترجع true في حال كان كائن الـ Vector يتطابق مع المصفوفة في عدد و قيم العناصر الموضوعة فيهما و بنفس الترتيب.
    public Object firstElement() ترجع أول عنصر موجود في كائن الـ Vector, أي العنصر الموجود على الـ index رقم 0.
    public Object get(int index) ترجع العنصر الموجود على الـ index الذي نمرره لها كـ Argument.
    public int hashCode() ترجع الـ Hash Code للعنصر الذي قام باستدعائها.
    public int indexOf(Object elem) تبحث في كائن الـ Vector عن أي قيمة نمررها لها كـ Argument.
    ترجع رقم أول Index يحتوي على القيمة المطلوبة في حال وجود نفس القيمة في أكثر من عنصر.
    ترجع 1- في حال عدم إيجاد القيمة المطلوبة.
    public int indexOf(Object elem, int index) تبحث في كائن الـ Vector عن أي قيمة نمررها لها كـ Argument.
    تبدأ عملية البحث من رقم الـ index الذي نضعه مكان الباراميتر الثاني.
    ترجع رقم أول Index يحتوي على القيمة المطلوبة في حال وجود نفس القيمة في أكثر من عنصر.
    ترجع 1- في حال عدم إيجاد القيمة المطلوبة.
    public void insertElementAt(Object obj, int index) تستخدم لإضافة عنصر جديد في مكان محدد في كائن الـ Vector.
    public boolean isEmpty() ترجع true في حال كان كائن الـ Vector فارغاً.
    public Object lastElement() ترجع آخر عنصر موجود في كائن الـ Vector.
    public int lastIndexOf(Object elem) تبحث في كائن الـ Vector عن أي قيمة نمررها لها كـ Argument.
    ترجع رقم آخر Index يحتوي على القيمة المطلوبة في حال وجود نفس القيمة في أكثر من عنصر.
    ترجع 1- في حال عدم إيجاد القيمة المطلوبة.
    public int lastIndexOf(Object elem, int index) تبحث في كائن الـ Vector عن أي قيمة نمررها لها كـ Argument.
    تبدأ عملية البحث من رقم الـ index الذي نضعه مكان الباراميتر الثاني.
    ترجع رقم آخر Index يحتوي على القيمة المطلوبة في حال وجود نفس القيمة في أكثر من عنصر.
    ترجع 1- في حال عدم إيجاد القيمة المطلوبة.
    public Object remove(int index) تحذف عنصر محدد من كائن الـ Vector.
    public boolean remove(Object o) تحذف أول عنصر يتم إيجاده في كائن الـ Vector في حال كان يتطابق مع الكائن الذي نمرره لها كـ Argument.
    ترجع true إذا تم حذف العنصر بنجاح.
    public boolean removeAll(Collection c) تحذف مجموعة متتالية من العناصر الموجود في كائن الـ Vector في حال كانت تتطابق مع كائن الـ Collection الذي نمرره لها كـ Argument.
    ترجع true إذا تم حذف جميع العناصر بنجاح.
    public boolean removeAllElements() تحذف جميع العناصر من كائن الـ Vector, و تجعل حجمه يساوي 0.
    ترجع true إذا تم حذف جميع العناصر بنجاح.
    public boolean removeElement(Object obj) تحذف أول عنصر يتم إيجاده في كائن الـ Vector في حال كان يتطابق مع الكائن الذي نمرره لها كـ Argument.
    ترجع true إذا تم حذف العنصر بنجاح.
    public void removeElementAt(int index) تحذف عنصر محدد من عناصر كائن الـ Vector.
    public boolean retainAll(Collection c) تبقي عناصر كائن الـ Vector الموجودة في كائن الـ Collection الذي نمرره لها كـ Argument, و تحذف جميع العناصر الأخرى.
    public Object set(int index, Object element) تبدل عنصر محدد في كائن الـ Vector بعنصر جديد, و ترجعه أيضاً.
    public void setElementAt(Object obj, int index) تبدل عنصر محدد في كائن الـ Vector بعنصر جديد.
    public void setSize(int newSize) تحدد عدد عناصر كائن الـ Vector.
    إذا كان العدد الموضوع فيها أكبر من عدد عناصر كائن الـ Vector, عندها توضع القيمة null مكان كل عنصر فارغ ( أي غير مستخدم ).
    إذا كان العدد الموضوع فيها أصغر من عدد العناصر كائن الـ Vector, عندها يتم حذف العناصر التي لم يعد كائن الـ Vector قادراً على تخزينها.
    public int size() ترجع عدد العناصر الموجودة في كائن الـ Vector.
    public subList(int fromIndex, int toIndex) ترجع كائن نوعه List يمثل العناصر الموجودة في كائن الـ Vector إبتداءاً من fromIndex وصولاً إلى ما قبل toIndex.
    public Object[] toArray() ترجع مصفوفة نوعها Object تحتوي على جميع العناصر الموجودة في كائن الـ Vector.
    public String toString() ترجع كائن نوعه String يمثل العناصر الموجودة في كائن الـ Vector.
    public void trimToSize() تصغر حجم كائن الـ Vector في الذاكرة, حيث أنها تحذف جميع الأماكن المحجوزة له في الذاكرة و التي لم يضطر إلى استخدامها لأنها ما زالت فارغة ( أي لا تحتوي على عنصر ).

    أمثلة شاملة

    في كل مثال موضوع استخدامنا كونستركتور مختلف و دوال جديدة.



    المثال الأول

    في المثال التالي وضحنا الفرق بين حجم كائن الـ Vector في الذاكرة و بين عدد عناصره المستخدمة.

    استخدامنا فيه الدوال التالية: add() - capacity() - size() - trimToSize().

    Main.java
    import java.util.Vector;                                         // Vector هنا قمنا باستدعاء الكلاس
     
    public class Main {
     
        public static void main(String[] args) {
     
            Vector v = new Vector();                                 // باستخدام الكونستركتور الإفتراضي v إسمه Vector هنا قمنا بإنشاء كائن من الكلاس
     
            System.out.println("capacity = " + v.capacity());        // في الذاكرة و الذي سيكون 10 لأن هذا الكائن أنشئ بواسطة الكونستركتور الإفتراضي v هنا عرضنا عدد العناصر المحجوز للكائن
            System.out.println("size     = " + v.size() + "\n");     // و الذي سيكون 0 لأننا لم ندخل فيه أي كائن بعد v هنا عرضنا عدد عناصر الكائن
     
            v.add("A");                                              // v هنا قمنا بإضافة 11 عنصر في الكائن
            v.add("B");
            v.add("C");
            v.add("D");
            v.add("E");
            v.add("F");
            v.add("G");
            v.add("H");
            v.add("I");
            v.add("J");
            v.add("K");
     
            System.out.println("capacity = " + v.capacity());        // و الذي أصبح 20 لأن الكونستركتور الإفتراضي يحجز 10 أماكن جديدة كلما إمتلأ v هنا عرضنا عدد العناصر المحجوز للكائن
            System.out.println("size     = " + v.size() + "\n");     // و الذي أصبح 11 لأننا أضفنا فيه 11 عنصراً v هنا عرضنا عدد عناصر الكائن
     
            v.trimToSize();                                          // و التي لم يحتاجها v هنا قمنا بحذف الأماكن المحجوزة في الذاكرة من أجل الكائن
     
            System.out.println("capacity = " + v.capacity());        // هنا عرضنا حجم المصفوفة في الذاكرة و عدد عناصرها, لاحظ أنهما أصبحا متساويان
            System.out.println("size     = " + v.size());
     
        }
     
    }
    		

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

    capacity = 10
    size     = 0
    
    capacity = 20
    size     = 11
    
    capacity = 11
    size     = 11 
    		


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

    في المثال التالي قمنا بتحديد حجم كائن الـ Vector في الذاكرة من خلال الكونستركتور.
    ثم قمنا بإضافة بعض العناصر فيه.
    بعدها قمنا بتحديد عدد عناصره و حجمه في الذاكرة بواسطة الدالة setSize().
    في الأخير قمنا بعرض جميع عناصره بواسطة الحلقة for.

    Main.java
    import java.util.Vector;                                         // Vector هنا قمنا باستدعاء الكلاس
     
    public class Main {
     
        public static void main(String[] args) {
     
            Vector v = new Vector(5);                                // يمكنه إحتواء 5 عناصر v إسمه Vector هنا قمنا بإنشاء كائن من الكلاس
     
            System.out.println("capacity = " + v.capacity());        // في الذاكرة و الذي سيكون 5 v هنا عرضنا عدد العناصر المحجوز للكائن
            System.out.println("size     = " + v.size() + "\n");     // و الذي سيكون 0 لأننا لم ندخل فيه أي كائن بعد v هنا عرضنا عدد عناصر الكائن
     
            v.add("A");                                              // v هنا قمنا بإضافة 5 عناصر في الكائن
            v.add("B");
            v.add("C");
            v.add("D");
            v.add("E");
     
            System.out.println("capacity = " + v.capacity());        // هنا عرضنا حجم المصفوفة في الذاكرة و عدد عناصرها, لاحظ أنهما أصبحا متساويان
            System.out.println("size     = " + v.size() + "\n");
     
            v.setSize(12);                                           // مكان كل عنصر غير مستخدم null في الذاكرة بـ 12 عنصر و تم وضع القيمة v هنا قمنا بتحديد حجم الكائن
     
            System.out.println("capacity = " + v.capacity());        // هنا عرضنا حجم المصفوفة في الذاكرة و عدد عناصرها يساويان 12
            System.out.println("size     = " + v.size() + "\n");
     
            for(int i=0; i<v.size(); i++) {                          // هنا أنشأنا حلقة تعرض جميع العناصر الموجودة فيها
                System.out.println("v[" +i+ "] = " +v.get(i));
            }
     
        }
     
    }
    		

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

    capacity = 5
    size     = 0
    
    capacity = 5
    size     = 5
    
    capacity = 12
    size     = 12
    
    v[0] = A
    v[1] = B
    v[2] = C
    v[3] = D
    v[4] = E
    v[5] = null
    v[6] = null
    v[7] = null
    v[8] = null
    v[9] = null
    v[10] = null
    v[11] = null 
    		


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

    في المثال التالي قمنا بإضافة كائن نوعه Vectorفي كائن آخر نوعه Vector.
    لاحظ هنا أنه عند إضافة كائن بواسطة الدالة add(Collection c) فإن جميع عناصره توضع في عنصر واحد.

    Main.java
    import java.util.Vector;                                         // Vector هنا قمنا باستدعاء الكلاس
     
    public class Main {
     
        public static void main(String[] args) {
     
            Vector v1 = new Vector();                                // v1 إسمه Vector هنا قمنا بإنشاء كائن من الكلاس
            Vector v2 = new Vector();                                // v2 إسمه Vector هنا قمنا بإنشاء كائن من الكلاس
     
            v1.add("A");                                             // v1 هنا قمنا بإضافة 5 عناصر في الكائن
            v1.add("B");
            v1.add("C");
            v1.add("D");
            v1.add("E");
     
            v2.add(v1);                                              // v2 في أول عنصر في الكائن v1 هنا قمنا بإضافة جميع عناصر الكائن
     
            System.out.println("v1 size = " + v1.size());            // يحتوي على 5 عناصر v1 لاحظ أن الكائن
            System.out.println("v2 size = " + v2.size() + "\n");     // يحتوي على عنصر واحد فقط v2 لكن الكائن
     
            System.out.println("v2[0] = " +v2.get(0));               // عبارة عن مصفوفة فيها 5 كائنات v2 لاحظ أن العنصر الذي يحتويه الكائن
     
        }
     
    }
    		

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

    v1 size = 5
    v2 size = 1
    
    v2[0] = [A, B, C, D, E] 
    		


    المثال الرابع

    في المثال التالي قمنا باستخدام الدوال التالية التي تستخدم في البحث و التشييك:
    firstElement() - lastElement() - indexOf() - lastIndexOf() - elementAt() - contains().

    Main.java
    import java.util.Vector;             // Vector هنا قمنا باستدعاء الكلاس
     
    public class Main {
     
        public static void main(String[] args) {
     
            // v إسمه Vector هنا قمنا بإنشاء كائن من الكلاس
            Vector v = new Vector();
     
            // v هنا قمنا بإضافة 9 عناصر في الكائن
            v.add("A");
            v.add("B");
            v.add("C");
            v.add("D");
            v.add("E");
            v.add("A");
            v.add("B");
            v.add("C");
            v.add("Z");
     
            // v هنا عرضنا العنصر الأول و الأخير الموجودين في الكائن
            System.out.println("First element: " + v.firstElement());
            System.out.println("Last element:  " + v.lastElement() + "\n");
     
            // v هنا عرضنا خامس عنصر موجود في الكائن
            System.out.println("Element at v[4]: " + v.elementAt(4) + "\n");
     
            // v موجودين في الكائن 'C' أول و آخر كائن index هنا عرضنا
            System.out.println("First index of the object 'C': " + v.indexOf("C"));
            System.out.println("Last index of the object 'C':  " + v.lastIndexOf("C") + "\n");
     
            // F و D عن الكائنين v هنا بحثنا في عناصر الكائن
            System.out.println("Does it contain a 'D' object? " + v.contains("D"));
            System.out.println("Does it contain a 'F' object? " + v.contains("F"));
     
        }
     
    }
    		

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

    First element: A
    Last element: Z
    
    Element at v[4]: E
    
    First index of the object 'C': 2
    Last index of the object 'C': 7
    
    Does it contain a 'D' object? true
    Does it contain a 'F' object? false 
    		


    المثال الخامس

    في المثال التالي قمنا بنسخ عناصر كائن الـ Vector بداخل مصفوفة جديدة نوعها Object بواسطة الدالة copyInto().

    Main.java
    import java.util.Vector;             // Vector هنا قمنا باستدعاء الكلاس
     
    public class Main {
     
        public static void main(String[] args) {
     
            // v إسمه Vector هنا قمنا بإنشاء كائن من الكلاس
            Vector v = new Vector();
     
            // v هنا قمنا بإضافة 3 عناصر في الكائن
            v.add("A");
            v.add("B");
            v.add("C");
     
            // v عدد عناصرها يساوي عدد عناصر الكائن ,Object هنا قمنا بإنشاء مصفوفة نوعها
            Object[] arr = new Object[v.size()];
     
            // arr بنفس الترتيب في المصفوفة v هنا قمنا بنسخ عناصر الكائن
            v.copyInto(arr);
     
            // arr هنا أنشأنا حلقة تعرض جميع العناصر الموجودة في الحلقة
            for(int i=0; i<arr.length; i++) {
                System.out.println("arr[" +i+ "] = " +arr[i]);
            }
     
        }
     
    }
    		

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

    arr[0] = A
    arr[1] = B
    arr[2] = C
    		


    المثال السادس

    في المثال التالي قمنا بإنشاء نسخة ثانية من كائن الـ Vector في كائن جديد نوعه Object بواسطة الدالة clone().
    بعدها قمنا بمسح جميع عناصر كائن الـ Vector الأساسي بواسطة الدالة clone().

    Main.java
    import java.util.Vector;             // Vector هنا قمنا باستدعاء الكلاس
     
    public class Main {
     
        public static void main(String[] args) {
     
            // v إسمه Vector هنا قمنا بإنشاء كائن من الكلاس
            Vector v = new Vector();
     
            // v هنا قمنا بإضافة 3 عناصر في الكائن
            v.add("A");
            v.add("B");
            v.add("C");
     
            // o في الكائن v هنا قمنا بنسخ عناصر الكائن
            Object o = v.clone();
     
            // v هنا قمنا بمسح جميع عناصر الكائن
            v.clear();
     
            // o و v هنا قمنا بعرض عناصر كل من الكائنات
            System.out.println("v = " +v);
            System.out.println("o = " +o);
     
        }
     
    }
    		

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

    v = []
    o = [A, B, C] 
    		
    إعلان

    Eqla3Tech.com

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

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

    الدورات

    أدوات مساعدة

    الأقسام

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