المتجه في جافا | فئة متجه جافا مع أمثلة

نشرت: 2021-05-26

في البرمجة ، يعد Vector in Java أحد أكثر هياكل البيانات شيوعًا. المصفوفات هي هياكل بيانات ثابتة يمكنها تخزين البيانات خطيًا. وبالمثل ، يقوم المتجه في جافا أيضًا بتخزين البيانات خطيًا ، لكنها لا تقتصر على حجم ثابت. بدلاً من ذلك ، يمكن أن ينمو حجمها أو يتقلص حسب المتطلبات. الفئة الرئيسية هي فئة AbstractList ويتم تنفيذها على List Interface.

قبل البدء في استخدام المتجهات ، قم باستيرادها من java.util.package على النحو التالي:

استيراد java.util.Vector

جدول المحتويات

إعلان وتقييم عناصر المتجه

إليك كيفية الإعلان عن المتجه في جافا:

يعمل ناقل الفئة العامة <V> على توسيع قائمة الخلاصة <V>

تنفذ قائمة <V> ، RandomAccess ، Cloneable ، Serializable

هنا ، V هو نوع العنصر الذي يمكن أن يكون int ، أو string ، أو char ، إلخ.

مثلما نصل إلى أعضاء البيانات في المصفوفات ، يمكننا القيام بذلك في المتجهات أيضًا باستخدام فهرس العنصر. على سبيل المثال ، يمكن الوصول إلى العنصر الثاني من Vector E كـ E [2].

بعض الأخطاء الشائعة التي حدثت أثناء التصريح عن متجه في جافا:

  • يتم طرح IllegalArgumentException إذا كان الحجم الأولي للمتجه قيمة سالبة
  • يتم طرح NullPointerException إذا كانت المجموعة المحددة خالية
  • حجم المتجه أقل من أو يساوي سعة المتجه
  • يتم مضاعفة السعة في كل دورة زيادة إذا لم يتم تحديد زيادة المتجه

بناة

1. المتجه (int initialCapacity، int increment)

يؤدي هذا إلى إنشاء متجه في جافا بسعة أولية كما هو محدد ، ويتم تحديد الزيادة أيضًا. مع الزيادة ، يتم تحديد عدد العناصر المخصصة في كل مرة يتم فيها تغيير حجم المتجه لأعلى.

بناء الجملة: Vector <V> e = Vector جديد <V> (int initialCapacity ، int Increment) ؛

2. المتجه (int initialCapacity)

يقوم بإنشاء متجه في جافا بسعة أولية تساوي الحجم كما هو محدد.

بناء الجملة: Vector <V> e = Vector جديد <V> (int initialCapacity) ؛

3. المتجه ()

يقوم بإنشاء متجه في جافا بسعة افتراضية أولية تبلغ 10.

بناء الجملة: Vector <V> e = Vector جديد <V> () ؛

4. ناقلات (مجموعة ج)

يقوم بإنشاء متجه في جافا عناصره هي عناصر المجموعة ج.

بناء الجملة: Vector <V> e = Vector جديد <V> (Collection c) ؛

فيما يلي مثال لتوضيح إنشاء المتجه واستخدامه في جافا:

رمز

استيراد java.util. * ؛

فئة عامة رئيسية {

الرئيسية العامة الثابتة الفراغ (سلسلة [] args)

{

// إنشاء متجه افتراضي

المتجه a = ناقل جديد () ؛

// إنشاء متجه بالحجم المحدد

المتجه ب = ناقل جديد (20) ؛

// إنشاء متجه بالحجم والزيادة المحددين

المتجه ج = ناقل جديد (30،10) ؛

إضافة (100) ؛

إضافة (200) ؛

إضافة (300) ؛

// قم بإنشاء متجه بمجموعة محددة

المتجه د = ناقل جديد (ب)

System.out.println ("ناقل سعة" + a.capacity ()) ؛

System.out.println ("متجه ب السعة" + b.capacity ()) ؛

System.out.println ("متجه c من السعة" + c.capacity ()) ؛

System.out.println ("متجه السعة" + d.capacity ()) ؛

}}

انتاج |

ملاحظة: يتم استخدام .capacity () لإرجاع سعة المتجه.

يحتوي المتجه في جافا على ثلاث معاملات محمية على النحو التالي:

1. Int elementCount () - يخبرنا بعدد العناصر التي يحتوي عليها المتجه

2. Int capcityIncremen () - عندما يصبح حجم المتجه أكبر من السعة ، تزداد السعة تلقائيًا مع هذا.

3. كائن [] elementData () - يتم تخزين عناصر المتجه في صفيف.

طرق

فيما يلي بعض الطرق المستخدمة بشكل متكرر للناقلات في جافا:

1. أضف العناصر

إضافة منطقية (كائن o) - يتم إلحاق عنصر في نهاية المتجه

إضافة باطلة (عنصر الفهرس الخامس) - يضاف العنصر المحدد إلى الفهرس المحدد في المتجه

رمز لإضافة العناصر في Vector in java:

استيراد java.util. * ؛

استيراد java.io. * ؛

AddElementsToVector {

عام ثابت باطل رئيسي (سلسلة [] وسيطة)

{

// إنشاء متجه افتراضي

المتجه a = ناقل جديد () ؛

// إضافة عناصر باستخدام طريقة add ()

أ.إضافة (1) ؛

أ.إضافة (2) ؛

a.add ("vect") ؛

a.add ("لـ") ؛

أ.إضافة (3) ؛

System.out.println ("المتجه a هو" + a) ؛

// إنشاء متجه عام

Vector <Integer> b = ناقل جديد <Integer> () ؛

إضافة (0) ؛

إضافة (1) ؛

إضافة (2) ؛

System.out.println ("المتجه ب هو" + ب) ؛

}

}

انتاج |

2. إزالة العناصر

Boolean Remove (object o) - تُستخدم لإزالة العنصر عند الفهرس المحدد في المتجه

عند إزالة العنصر ، يتم إزاحة جميع العناصر إلى اليسار لملء الفراغات ؛ ثم يتم تحديث المؤشرات.

كود لتوضيح إزالة العناصر من المتجه في جافا:

استيراد java.util. * ؛

استيراد java.io. * ؛

الطبقة العامة إزالة {

عام ثابت باطل رئيسي (سلسلة [] وسيطة)

{

// إنشاء متجه افتراضي

المتجه a = ناقل جديد () ؛

// إضافة عناصر باستخدام طريقة add ()

أ.إضافة (1) ؛

أ.إضافة (2) ؛

a.add ("vect") ؛

a.add ("لـ") ؛

أ.إضافة (4) ؛

// إزالة العنصر

أ. إزالة (2) ؛

// يفحص

System.out.println ("بعد الإزالة:" + a) ؛

}

}

انتاج |

الخروج: كيف تصنع مهنة ناجحة في Java؟

3. تغيير العناصر

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

كود لتغيير العناصر في المتجه في جافا

استيراد java.util. * ؛

تحديث الفصل العام {

الرئيسية العامة الثابتة الفراغ (سلاسل سلسلة [])

{

// إنشاء ناقل فارغ

Vector <Integer> a = Vector جديد <Integer> () ؛

// أضف عناصر

أ.إضافة (1) ؛

أ.إضافة (2) ؛

أ.إضافة (3) ؛

أ.إضافة (10) ؛

أ.إضافة (20) ؛

// عرض

System.out.println (“Vector:” + a)؛

// يستبدل

System.out.println ("استبدال"

+ a.set (0 ، 22)) ؛

System.out.println ("استبدال"

+ أ مجموعة (4 ، 50)) ؛

// عرض المتجه المعدل

System.out.println ("المتجه الجديد هو:" + a)؛

}

}

انتاج |

4. كرر المتجه

هناك عدة طرق للتكرار الحلقي من خلال متجه. واحد منهم هو طريقة get (). هنا برنامج لتكرار العناصر في متجه في جافا:

استيراد java.util. * ؛

فئة عامة كرر {

الرئيسية العامة الثابتة الفراغ (سلاسل سلسلة [])

{

// إنشاء مثيل للمتجه

المتجه <سلسلة> a = ناقل جديد <> () ؛

// أضف عناصر باستخدام طريقة add ()

أ.إضافة ("متجه") ؛

a.add ("in") ؛

a.add (1 ، "جافا") ؛

// استخدم طريقة Get وحلقة for

لـ (int i = 0 ؛ i <a.size () ؛ i ++) {

System.out.print (a.get (i) + "") ؛

}

System.out.println () ،

// استخدم لكل حلقة

لـ (String str: a)

System.out.print (str + ”“) ؛

}

}

انتاج |

قراءة: Java Architecture & Components

طرق أخرى مهمة

  • حجم Int () - يستخدم لإرجاع حجم المتجه
  • Object get (int index) - تُستخدم لإرجاع العنصر إلى الموضع المحدد في المتجه
  • الكائن firstElement () - يُستخدم لإرجاع العنصر الأول للمتجه في جافا
  • كائن lastElement () - يُستخدم لإرجاع آخر عنصر متجه في جافا
  • Boolean يساوي (Object o) - يستخدم لمقارنة المتجه مع الكائن المحدد من أجل المساواة. إرجاع صحيح إذا كانت جميع العناصر صحيحة في المؤشرات الخاصة بكل منها
  • حجم الفراغ () - يستخدم لإزالة السعة الإضافية والحفاظ على السعة مساوية للحجم

المزيد حول النواقل

  • المتجه في جافا هو بنية بيانات ديناميكية يمكن الوصول إليها باستخدام فهرس عدد صحيح.
  • على الرغم من أنه يشبه ArrayList ، إلا أنه متزامن ، ويحتوي على بعض الأساليب القديمة غير المتوفرة في إطار عمل المجموعة.
  • تم الحفاظ على طلب الإدراج.
  • نادرًا ما يتم استخدامه في بيئة غير خيطية.
  • بسبب المزامنة ، يكون أداء المتجهات ضعيفًا في البحث عن العناصر وإضافتها وتحديثها وحذفها.
  • تفشل مكررات فئة المتجه بسرعة وتلقي الاستثناء المتزامن في حالة التعديل المتزامن.
  • المكدس هو صنفه الفرعي المعروف مباشرة.

تخصيص الذاكرة في المتجهات

كما رأينا أعلاه ، المتجهات ليس لها حجم محدد. بدلاً من ذلك ، يمكن للمتجه في جافا تغيير حجمه ديناميكيًا. من المفترض أن المتجهات تخصص مساحة غير محددة لتخزين العناصر. ومع ذلك، فإنه ليس كذلك. يتم تغيير حجم المتجه بناءً على حقلين - "زيادة السعة" و "السعة".

عندما يتم الإعلان عن ناقل ، يتم تخصيص حقل "قدرة" مساوٍ للحجم ، ويمكن إضافة عناصر مساوية للسعة. بمجرد إدخال العنصر التالي ، يزداد حجم المصفوفة عن طريق حجم "CapacityIncrement". يمنح هذا المتجه القدرة على تغيير حجمه - تتضاعف السعة للمُنشئ الافتراضي عند إدراج عنصر جديد.

تعلم دورات البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

مزايا Vector في Java

يتجنب الحجم الديناميكي للناقلات إهدار الذاكرة ، ويمكن تغيير حجم هيكل البيانات لدينا في أي وقت في منتصف البرنامج.

كل من المتجهات وقوائم ArrayLists ديناميكية. ومع ذلك ، فإن النواقل أكثر فائدة مثل:

  • يتم مزامنة المتجهات.
  • يحتوي على بعض الوظائف القديمة التي لا يمكن تنفيذها على ArrayLists.

خاتمة

المتجه في java هو مصفوفة ديناميكية ليس لها حد للحجم وهي جزء من Java Collection Framework منذ Java 1.2. لقد رأينا العديد من المنشئات والأساليب الشائعة المستخدمة في النواقل في هذه المدونة. من الجدير أيضًا الانتباه إلى أنه يجب استخدام فئة Vector في بيئة خيط آمنة فقط.

إذا كنت مهتمًا بمعرفة المزيد حول Java و OOPs وتطوير البرامج كاملة المكدس ، تحقق من upGrad & IIIT-B's Executive PG Program in Software Development - التخصص في Full Stack Development المصمم للمهنيين العاملين ويقدم أكثر من 500 ساعة من تدريب صارم ، أكثر من 9 مشاريع ، ومهام ، وحالة خريجي IIIT-B ، ومشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.

ما هو المتجه في جافا؟

المتجه هو بنية بيانات في Java. كما يوحي الاسم ، المتجه هو نوع من تسلسل العناصر. يستخدم مصفوفة ديناميكية تنمو وتتقلص عند الوصول إليها. لها طريقة حجم () للحصول على الحجم الحالي للمتجه وطريقة السعة () للحصول على قدرة المتجه. هاتان الطريقتان ترجعان القيم الأكبر من الصفر. سعة المتجه هي عدد العناصر التي يمكن تخزينها داخل المتجه دون الحاجة إلى تخصيص مصفوفة جديدة. حجم المتجه هو عدد العناصر المخزنة حاليًا داخل المتجه.

ما هي مزايا المتجهات على المصفوفات؟

المصفوفات ذات حجم ثابت ، مما يعني أنها لا تستطيع النمو أو الانكماش حسب الحاجة. يتم تنفيذ النواقل كمصفوفات يمكن تغيير حجمها ديناميكيًا ، مما يسمح لها بالنمو والانكماش حسب الحاجة. هذا مفيد للنمو المستمر للبيانات ؛ على سبيل المثال ، سيتمكن البرنامج الذي يقرأ الملفات النصية سطرًا سطرًا من النمو جنبًا إلى جنب مع حجم الملف. النواقل بشكل عام أكثر كفاءة من المصفوفات. هذا لأنه يتم تنفيذ المتجهات كمصفوفات من المراجع (java.lang.Objects) ، بينما يتم تنفيذ المصفوفات كمصفوفات من الكائنات.

ما هو ArrayList في جافا؟

يمثل Class ArrayList صفيفًا ديناميكيًا. يمكن أن تنمو حسب الضرورة لاستيعاب العناصر الجديدة. يتم تنفيذ المصفوفة فعليًا كقائمة مراجع للكائنات. عندما يلزم إنشاء عنصر ، يتم توفير مرجع لكائن جديد. هذا ممكن بسبب حقيقة أن ArrayList يتم تنفيذه كقائمة يمكن تغيير حجمها ديناميكيًا. يرث ArrayList معظم طرقه ومجالاته من AbstractList. ArrayList أسرع من المصفوفة لأنه لا يحتاج إلى إنشاء كائنات جديدة. تسمى الطرق المتغيرة التي تغير حجم المصفوفة مثل الإضافة والتعيين والإزالة بالطرق المدمرة لأنها تغير حجم المصفوفة بشكل دائم.