|-قائمة: يتم طلب العناصر (اخرج عند تخزينها ، ولن يتم إفساد الطلب). علامة الزاوية 2) بسبب هذه المجموعة ، يحتوي النظام على فهارس ،
|- ArrayList: يستخدم هيكل البيانات الأساسي بنية صفيف (طول الصفيف أطول بنسبة 50 ٪ من المتغير) (الميزة هي أن الاستعلام سريع للغاية ، لكن الإضافة والحذف بطيئة) لا يتم مزامنة المواضيع
|- LinkedList: بنية البيانات الأساسية هي بنية قائمة مرتبطة (الخصائص هي استعلام أبطأ وإضافة وحذف أسرع)
|- المتجه: الطبقة الأساسية هي مزامنة مؤشر ترابط بنية بيانات الصفيف (طول الصفيف بنسبة 100 ٪ من المتغير) (كل من الاستعلامات والإضافات والحذف بطيئة للغاية ، وتم استبدالها بواسطة ArrayList)
القائمة: طريقة فريدة من نوعها.
يزيد
نسخة الكود كما يلي:
إضافة منطقية (int index ، e element)
Boolean Addall (فهرس ، مجموعة)
نسخة الكود كما يلي:
public static void list_add () {
ArrayList A1 = new ArrayList () ؛
A1.Add ("Java") ؛
A1.Add ("PHP") ؛ // العناصر في مجموعة القائمة يمكن تكرارها
A1.Add (". net") ؛
System.out.println ("المجموعة الأصلية:"+A1) ؛
A1.Add (1 ، "Flash") ؛
A1.Add (0 ، "PS") ؛
System.out.println (A1) ؛
ArrayList A2 = new ArrayList () ؛
A2.Add ("JavaScript") ؛
A2.Add ("3dmax") ؛
A2.Add ("IBM") ؛
A1.Addall (0 ، A2) ؛
System.out.println (A1) ؛
}
حذف العناصر في الموقع المحدد
نسخة الكود كما يلي:
إزالة منطقية (مؤشر int)
نسخة الكود كما يلي:
public static void list_remove () {
ArrayList A1 = new ArrayList () ؛
A1.Add ("JavaScript") ؛
A1.Add ("PHP") ؛
A1.Add ("Flash") ؛
System.out.println ("المجموعة الأصلية:"+A1) ؛
a1.remove (0) ؛
System.out.println (A1) ؛
}
قم بتعديل عنصر مجموعة الزاوية المحددة (int index ، e element) يتم تعديل العنصر الذي تم إرجاعه
نسخة الكود كما يلي:
public static void list_set () {
ArrayList A1 = new ArrayList () ؛
A1.Add ("JavaScript") ؛
A1.Add ("PHP") ؛
A1.Add (". net") ؛
System.out.println ("المجموعة الأصلية:"+A1) ؛
a1.set (1 ، "falsh") ؛
System.out.println (A1) ؛
}
يفحص
نسخة الكود كما يلي:
Get (Int Index) إرجاع العنصر في الموضع المحدد في القائمة
يقوم المحرك الفرعي (int fromindex ، int toindex) بإرجاع بعض العناصر بين FromIndex (بما في ذلك) و toindex (باستثناء) المحددة في القائمة.
نسخة الكود كما يلي:
public static void list_get () {
ArrayList A1 = new ArrayList () ؛
A1.Add ("Java") ؛
A1.Add ("PHP") ؛
A1.Add ("Flash") ؛
System.out.println (A1.get (0)) ؛ // احصل على عنصر نقطة الزاوية المحددة.
System.out.println (A1.Sublist (1 ، 3)) ؛ // احصل على العنصر في جزء معين من المجموعة ، بما في ذلك الرأس ولكن ليس الذيل
}
ITERATAR الخاص بجمع القائمة: LISTITERATOR (هو واجهة فرعية لـ ITERATAR)
يلاحظ:
أثناء التكرار ، لا يمكن تشغيل عناصر في المجموعة من خلال طريقة كائن المجموعة
لأن استثناء ConcurrentModificationException (استثناء متزامن) سيحدث
لذلك ، عند التكرار ، يمكنك فقط استخدام طريقة التكرار لإنشاء عناصر
نظرًا لأن طريقة التكرار محدودة ، يمكنها فقط الحكم على العناصر وإزالتها وحذفها.
إذا كنت تريد عمليات أخرى مثل الإضافة والتعديل وما إلى ذلك ، فأنت بحاجة إلى استخدام واجهة الفرعية الخاصة به ، ListIterator
لا يمكن الحصول على هذه الواجهة إلا من خلال طريقة ListIrator في مجموعة القائمة
نسخة الكود كما يلي:
فئة عامة قائمة {
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
ArrayList A1 = new ArrayList () ؛
A1.Add ("Java01") ؛
A1.Add ("Java02") ؛
A1.Add ("Java03") ؛
A1.Add ("Java04") ؛
System.out.println ("المجموعة الأصلية هي:"+A1) ؛
/*التحضير لإضافة أو حذف العناصر أثناء عملية التكرار
iterator it = al.iterator () ؛
بينما (it.hasnext ()) {
كائن obj = it.next () ؛
إذا (obj.equals ("Java02"))
//al.add("Java008") ؛// أن الاستثناء المتزامن سيحدث لأن Iterator يعمل على تشغيل المجموعة ولم يعد بإمكانه استخدام طريقة التجميع لتشغيل المجموعة.
it.remove () ؛ // قم بإزالة مرجع Java02 من المجموعة
System.out.println ("OBJ:"+OBJ) ؛
}
*/
// فقط ListIritiTorator تحتوي على وظائف إضافة وحذف وتعديل والتحقق ، لأن القائمة فقط بها الفهرس
ListIritorator li = a1.listiterator () ؛
بينما (li.hasnext ()) {
إذا (li.next (). يساوي ("Java02"))
//li.add("java009 ") ؛
li.set ("java006") ؛
}
}
}
المتجه: التعداد هو وسيلة فريدة لجلبها في المتجه ، وهو ما يشبه إلى حد كبير التكرار (في الواقع ، التعداد والتكرار متماثلان) وقد تم استبداله بمؤلف.
نسخة الكود كما يلي:
الطبقة العامة Vectordemo {
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
ناقل V = جديد ناقل () ؛
V.Add ("Java01") ؛
V.Add ("Java02") ؛
V.Add ("Java03") ؛
V.Add ("Java04") ؛
لـ (التعداد en = v.elements () ؛ en.hasmoreElements () ؛) {
system.out.println (en.nextElement ()) ؛
}
}
}
LinkedList:
طريقة خاصة:
addfirst () ؛
getFirst () ؛ إذا لم تكن هناك عناصر في المجموعة ، فسيظهر NosuchelementException
remostfirst () ؛ إذا لم تكن هناك عناصر في المجموعة ، فسيظهر NosuchelementException
تظهر النهج البديلة في JDK1.6
عرض () ؛
Peekfirst () ؛ إذا لم تكن هناك عناصر في المجموعة ، فسيتم إرجاع NULL
Pollfirst () ؛ إذا لم تكن هناك عناصر في المجموعة ، فسيتم إرجاع NULL
نسخة الكود كما يلي:
الطبقة العامة LinkedListDemo {
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
LinkedList Link = new LinkedList () ؛
Link.add ("Java01") ؛
Link.add ("Java02") ؛
Link.add ("Java03") ؛
Link.add ("Java04") ؛
بينما (! link.isempty ()) {
System.out.println ((link.removelast ())) ؛
}
}
}