فئة المتجه من جافا

تنفذ الفئة java Vector صفيفا من الكائنات المشابهة ل ArrayList.  يمكن الوصول إلى عناصر المتجهات من خلال فهرس عدد صحيح. يختلف حجم Vector وفقا للحاجة (لإضافة أو إزالة العناصر) بعد الإنشاء.

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

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

تدعم فئة Vector 4 منشئات:

1) المتجه v = المتجه الجديد () ؛ < / span >< br / >ينشئ هذا المنشئ متجه فارغا بحجم أولي 10. سيتم تغيير حجم المتجه إذا تجاوز 10 عناصر بحيث يتم إدراج العنصر الحادي عشر في Vector.

2) المتجه v = متجه جديد (int abilityInitial) ؛ < / span >< br / >يقوم هذا الشكل بتهيئة المتجه بحجم أولي يحدد عدد العناصر المراد تخصيصها.
Vector v = متجه جديد (5) ؛ / / سيتم إنشاء متجه بسعة 5.< / span>

3)Vector v = متجه جديد (int abilityInitial ، int capacity)
ينشئ متجه بسعة أولية ويحدد عدد البلاطات التي سيتم تخصيصها عندما يقوم Vector بتغيير حجم السعة إذا وصل عدد العناصر إلى الحد الأقصى للحجم.
المتجه v = المتجه الجديد (8); < / span >< br / > سيخلق متجه بسعة 8 وسعة زيادة 4. ماذا يعني هذا أن إدراج العنصر التاسع ، الحجم هو 12 (8 + 4) والإدراج السادس عشر سيكون 20 (16 + 4) .

4)المتجه v = متجه جديد (المجموعة ج)؛ < / span >< br / > تهيئة المتجه بمجموعة من الكائنات (ArrayList ، TreeSet ، HashMap ، إلخ).

طرق Vector المهمة< / h2>
كما هو الحال في ArrayList ومجموعات الكائنات الأخرى ، يقوم Vector بتنفيذ قائمة واجهة < / a>  و واجهة  Collections التي ترث منها العديد من طرق الإضافة والحذف والبحث والتعديل.

Add Item

تتم الإضافة بطريقتين:  add () < / span > و addElement(). addElement() بعد إدراج زيادات في حجم القائمة.

import java.util.Vector; 

فئة عامة addElement{

الفراغ العام الثابت الرئيسي (سلسلة [] args) {
المتجه v = متجه جديد ();

v.add(1);
v.add(2);
v.add(3);
System.out.println (v) ؛
v.addElement(4);
System.out.println (v) ؛
}
}
< / pre> الإخراج: < / div>

< pre class = "prettyprint lang-java" > [1 ، 2 ، 3]
[1 ، 2 ، 3 ، 4]
< / pre>< / div>

حذف عنصر< / h3 >< / div>
يمكنك حذف إما باستخدام الفهرس باستخدام طريقة < span style = "عائلة الخط: ساعي جديد ، ساعي ، ميني فان ؛" >إزالة (فهرس int) < / span> ، إما بطريقتك الخاصة في < / span > المتجه < / span >< span style = "عائلة الخط: ساعي جديد ، ساعي ، أحادي الفضاء ؛" >removeElementAt(int index). يمكن البحث عن كائن وحذفه < / span > بالطريقة إزالة (كائن س) < / سبان>: < / div>

< / div>
< pre class = "prettyprint lang-java" >import java.util.Vector ؛

إزالة الفئة العامة {

الفراغ العام الثابت الرئيسي (سلسلة [] args) {
المتجه v = متجه جديد ();

v.add(1);
v.add(2);
v.add(3);
v.add(4);
System.out.println (v) ؛
//delete with index
v.remove(2);
System.out.println ("حذف العنصر في الفهرس 2: "+v);
//suppressioin مع object
v.reremove (عدد صحيح جديد (1)) ؛
System.out.println("حذف عدد صحيح 1:"+v);
}
}
< / pre> الإخراج:

< pre class = "prettyprint lang-java" > [1 ، 2 ، 3 ، 4]
حذف العنصر في الفهرس 2: [1 ، 2 ، 4] < br / > حذف عدد صحيح 1: [2 ، 4]
< / pre>< / div>هناك أيضا طريقة removeAll(Collection c) الذي يزيل مجموعة فرعية من القائمة. لإفراغ القائمة ، استخدم الطريقة removeAll() الذي يحذف جميع العناصر.

elementAt() وsetElementAt()

الحصول على (int i) < / span >  أو elementAt(int i) إرجاع العنصر إلى الفهرس المحدد i و set(كائن o,  int i) < / span > أو setElementAt(Object obj, int i) يستبدل العنصر بالكائن obj. get() لقلب العناصر أثناء انتقال المتجه. يتم الحصول على السعة بالطريقة size().

import java.util.Vector; 

اختبار الفئة العامة {

الفراغ الثابت العام الرئيسي (سلسلة [] args) {
المتجه v = متجه جديد ();

v.add(1);
v.add(2);
v.add(3);
v.add(4);

System.out.println ("العنصر الأول: "+v.firstElement());
System.out.println("العنصر الأخير: "+v.lastElement());

for (int i = 0 ؛ i< v.size(); i++)
System.out.println(v.get(i));

v.setElementAt("اثنان" ، 1) ؛
System.out.println (v) ؛
} < br / >}
< / pre> الإخراج:

< pre class = "prettyprint lang-java" > العنصر الأول: 1
العنصر الأخير: 4
1
2
3
4
[1 ، اثنان ، 3 ، 4] < / pre>< / div>< / div>

ابحث عن عنصر< / h3 >
البحث في متجه سهل ، يجب عليك استدعاء الطريقة indexOf(Object o) الذي يرجع فهرس التكرار الأول الذي تم العثور عليه. لدينا أيضا طريقة lastIndexOf(Object o) الذي يرجع فهرس آخر ظهور تم العثور عليه.

import java.util.Vector; 

اختبار الفئة العامة {

الفراغ الثابت العام الرئيسي (سلسلة [] args) {
المتجه v = متجه جديد ();

v.add ("java") ؛
v.add("c")؛
v.add("c++");
v.add ("جافا سكريبت") ؛
v.add ("جافا") ؛

System.out.println ("أول ظهور ل c: "+v.indexOf("c++"));
System.out.println("آخر ظهور لجافا: "+v.lastIndexOf("java"));
}
}
< / pre> الإخراج

< pre class = "prettyprint lang-java" > أول ظهور ل C: 2
آخر ظهور لجافا: 4
< / pre>< / div>

< / div>طرق أخرى:

- int Capacity(): إرجاع سعة القائمة.
- int setSize(): تغيير الحجم الحالي للقائمة.
- يحتوي منطقي على (كائن o) < / span >: تحقق مما إذا كان المتجه يحتوي على الكائن o.
- boolean isEmpty () < / span>: إرجاع true إذا كان فارغا.
- Object[] toArray(): المتجه المحول المحول إلى صفيف من الكائنات.

note:
size() حجم القائمة ونمط Capacity() السعة التي يمكن أن تستوعبها القائمة. لذلك يتم إجراء مسار Vector دائما باستخدام size() وإلا سترى خطأ يفيد بأنك تجاوزت الحجم.

المراجع:
openclassroms ناقلات جافا
javadoc: فئة المتجهات