يوفر java.util.vector فئات المتجهات (المتجهات) لتنفيذ وظائف تشبه الصفيف الديناميكي. لا يوجد مفهوم للمؤشرات في لغة جافا ، ولكن استخدام المؤشرات بشكل صحيح وبشكل مرن يمكن أن يحسن جودة البرنامج بشكل كبير. على سبيل المثال ، يتم تنفيذ ما يسمى "الصفيف الديناميكي" في C و C ++ بشكل عام بواسطة المؤشرات. من أجل تعويض هذا القصور ، توفر Java مكتبة فئة غنية لسهولة الاستخدام من قبل المبرمجين ، و Class Class هي واحدة منها. في الواقع ، يمكن لمرونة استخدام المصفوفات أيضًا إكمال وظائف فئات المتجهات ، ولكن العدد الكبير من الطرق المتوفرة في فئات المتجهات يسهل استخدام المستخدمين بشكل كبير.
بعد إنشاء كائن من فئة المتجه ، يمكنك إدراج كائنات من فئات مختلفة في الإرادة ، أي أنك لا تحتاج إلى النظر في نوع أو قدرة المتجه المحدد مسبقًا ، ويمكنك البحث بسهولة. بالنسبة للمواقف التي لا تعرف فيها أو لا ترغب في حجم الصفيف المحدد مسبقًا ، وتحتاج إلى البحث عن العمل وإدراجه وحذفه بشكل متكرر. يمكنك التفكير في استخدام فئات المتجهات.
فئة المتجه تنفذ مجموعة ديناميكية. إنه مشابه لـ ArrayList ، لكن الاثنين مختلفان:
تدعم فئة المتجه 4 طرق بناء.
1. ينشئ المُنشئ الأول متجهًا افتراضيًا بحجم افتراضي 10:
ناقل ()
2. طريقة البناء الثانية تنشئ متجهًا بحجم محدد.
ناقل (حجم int)
3. طريقة البناء الثالثة تنشئ متجهًا بحجم محدد ، ويتم تحديد الزيادة بواسطة LOND. تمثل الزيادة عدد العناصر التي يزدادها المتجه في كل مرة.
المتجه (حجم int ، int rev)
4. ينشئ المنشئ الرابع متجهًا يحتوي على عناصر المجموعة C:
المتجه (المجموعة ج)
سيقوم النظام تلقائيًا بإدارة المتجهات باستخدام الطريقة الأولى ، إذا تم استخدام الطريقتين الأخيرتين. سيقوم النظام بتعيين سعة كائن المتجه (أي حجم البيانات التي يمكن أن يخزنها كائن المتجه) وفقًا للمعلمات ، وعندما يتجاوز عدد البيانات المخزنة فعليًا السعة. سيقوم النظام بتوسيع سعة تخزين كائنات المتجهات.
تعطي سعة المعلمة قيمة التوسع لكل توسع. عندما يكون Courceincrement 0 ، لن يتضاعف التوسع. يمكن استخدام هذه الوظيفة لتحسين التخزين. يتم توفير طرق مختلفة في فئة المتجه لتسهيل استخدام المستخدمين:
وظيفة إدراج:
(1) الإضافة الفراغية المتماسكة النهائية (كائن OBJ)
أدخل OBJ في ذيل المتجه. يمكن أن يكون OBJ أي نوع من الكائن. لنفس كائن المتجه ، يمكن أيضًا إدخال أنواع مختلفة من الكائنات. ولكن يجب أن يكون الإدراج كائنًا بدلاً من قيمة رقمية ، لذلك عند إدخال قيمة رقمية ، يجب عليك الانتباه إلى تحويل الصفيف إلى الكائن المقابل.
على سبيل المثال: عند إدخال عدد صحيح 1 ، لا تستدعي v1.AddElement (1). الطريقة الصحيحة هي:
ناقل V1 = جديد ناقل () ؛ integer integer1 = عدد صحيح جديد (1) ؛ v1.AddElement (integer1) ؛
(2) Setelementat النهائي المزامنة النهائية (كائن OBJ ، مؤشر int)
اضبط الكائن على الفهرس على OBJ ، وسيتم كتابة الكائن الأصلي.
(3) إدراج باطل متزامن عام (كائن OBJ ، مؤشر INT)
أدخل OBJ في الموضع المحدد في الفهرس ، وسيتم تأجيل الكائن الأصلي والكائنات اللاحقة بدوره.
حذف الوظيفة:
(1) إزالة الفراغ المزامنة النهائية العامة (كائن OBJ)
حذف OBJ من المتجه. إذا كان هناك العديد من الوجود ، فابدأ برأس المتجه وحذف عضو المتجه الأول الموجود مع نفس OBJ.
(2) إزالة الفراغ المزامنة النهائية المزامنة () ؛
حذف جميع الكائنات في المتجه
(3) Fianl Public Foid removeElementat (INT INDEX)
حذف الكائن حيث يشير الفهرس إلى
وظيفة البحث عن الاستعلام:
(1) فهرس int النهائي العام (كائن OBJ)
ابدأ في البحث عن OBJ من رأس المتجه وإرجاع المركز الفردي المقابل لـ OBJ الأول الذي تمت مواجهته. إذا لم يكن هذا OBJ موجودًا ، فالتراجع -1.
(2) فهرس int النهائي العام (كائن OBJ ، مؤشر int)
ابدأ في البحث عن OBJ من الفهرس المشار إليه بواسطة الفهرس.
(3) النهائي العام int LastIndexof (Object OBJ)
بدء البحث العكسي عن OBJ من ذيل المتجه.
(4) المزامنة النهائية المزامنة int LastIndex (Object OBJ ، int index)
ابحث عن OBJ في الاتجاه المعاكس من النهاية إلى الرأس من المنشأة المشار إليها بواسطة الفهرس.
(5) المزامنة النهائية المزامنة ()
احصل على أول OBJ في كائن متجه
(6) كائن متزامن عام آخر ()
احصل على آخر OBJ لكائن المتجه
مثال
يشرح البرنامج التالي العديد من الطرق التي تدعمها هذه المجموعة:
استيراد java.util.*؛ فئة عامة Vectordemo {public static void main (String args []) {// الحجم الأولي هو 3 ، الزيادة هي 2 ناقل V = new Vector (3 ، 2) ؛ System.out.println ("الحجم الأولي:" + v.size ()) ؛ system.out.println ("السعة الأولية:" + v.capacity ()) ؛ V.AdDelement (عدد صحيح جديد (1)) ؛ V.AddElement (عدد صحيح جديد (2)) ؛ V.AddElement (عدد صحيح جديد (3)) ؛ V.AddElement (عدد صحيح جديد (4)) ؛ system.out.println ("السعة بعد أربع إضافات:" + v.capacity ()) ؛ V.AdDelement (New Double (5.45)) ؛ System.out.println ("السعة الحالية:" + v.capacity ()) ؛ V.AdDelement (New Double (6.08)) ؛ V.AddElement (عدد صحيح جديد (7)) ؛ System.out.println ("السعة الحالية:" + v.capacity ()) ؛ V.AddElement (New Float (9.4)) ؛ V.AddElement (عدد صحيح جديد (10)) ؛ System.out.println ("السعة الحالية:" + v.capacity ()) ؛ V.AddElement (عدد صحيح جديد (11)) ؛ V.AddElement (عدد صحيح جديد (12)) ؛ System.out.println ("العنصر الأول:" + (integer) v.firstelement ()) ؛ System.out.println ("العنصر الأخير:" + (integer) v.lastelement ()) ؛ if (v.contains (عدد صحيح جديد (3))) system.out.println ("المتجه يحتوي على 3.") ؛ // تعداد العناصر في المتجه. التعداد فينوم = v.elements () ؛ System.out.println ("/nelements in vector:") ؛ بينما (venum.hasmoreElements ()) system.out.print (Venum.NextElement () + "") ؛ System.out.println () ؛ }}نتائج المثال أعلاه ونتائج التشغيل هي كما يلي:
الحجم الأولي: 0 السعة السعة: 3Cappacity بعد أربع إضافات: 5 جائزة السعة: 5 جائزة السعة: 7 Current السعة: 9first العنصر: 1Last العنصر: 12 مستنير يحتوي على 3.Elements في المتجه: 1 2 3 4 5.45 6.08 7 9.4 10 11 12 12 12 12 12 12 12 12 12 12 12 12 12