قائمة ArrayList في Java هي يمكن تغيير حجمه (أو ديناميكي) صفيف من حزمة java.util يمكن أن تنمو أو تتقلص تلقائيًا عند إضافة العناصر أو إزالتها، على عكس المصفوفات العادية ذات الحجم الثابت.
- الوصول المفهرس: يمكن الوصول إلى العناصر باستخدام فهرسها تمامًا مثل المصفوفات.
- يسمح بالتكرارات: العناصر المكررة مسموح بها.
- يحافظ على ترتيب الإدراج: يتم تخزين العناصر بالترتيب الذي تم إدراجها به.
- غير متزامن: بشكل افتراضي، ArrayList ليس آمنًا لمؤشر الترابط (يلزم المزامنة اليدوية للوصول المتزامن).
import java.util.ArrayList; class Main { public static void main (String[] args) { // Creating an ArrayList ArrayList<Integer> a = new ArrayList<Integer>(); // Adding Element in ArrayList a.add(1); a.add(2); a.add(3); // Printing ArrayList System.out.println(a); } }
الإخراج
[1 2 3]
التسلسل الهرمي لقائمة ArrayList
ينفذ واجهة القائمة وهي واجهة فرعية لـ واجهة المجموعة .
منشئو ArrayList في Java
توفر Java منشئات متعددة لإنشاء قائمة ArrayList بناءً على متطلبات مختلفة:
1. قائمة المصفوفة ()
إنشاء قائمة ArrayList فارغة ذات سعة أولية افتراضية.
ArrayList
arr = new ArrayList<>()؛ 1nf 2nf 3nf
2. قائمة المصفوفات arr = new ArrayList<>()
إنشاء ArrayList تمت تهيئته بعناصر من المجموعة المحددة.
ArrayList
arr = new ArrayList<>(مجموعة)؛
3. ArrayList (السعة الأولية int)
يتم استخدام هذا المنشئ لإنشاء قائمة مصفوفة مع تحديد السعة الأولية.
كبش بوتينيني
ArrayList
arr = new ArrayList<>(20)؛
عمليات ArrayList
الآن باستخدام المنشئات حصلنا على ArrayList لمزيد من العمليات مثل InsertionDeletion وتحديث العناصر في ArrayList.
Javaimport java.util.*; class GFG{ public static void main(String args[]){ // Creating an Array of string type ArrayList<String> al = new ArrayList<>(); // 1. Adding elements to ArrayList at the end al.add('Geeks'); al.add('Geeks'); System.out.println('Original List : '+al); // Adding Elements at the specific index al.add(1 'For'); System.out.println('After Adding element at index 1 : '+ al); // 2. Removing Element using index al.remove(0); System.out.println('Element removed from index 0 : '+ al); // Removing Element using the value al.remove('Geeks'); System.out.println('Element Geeks removed : '+ al); // 3. Updating value at index 0 al.set(0 'GFG'); System.out.println('List after updation of value : '+al); } }
الإخراج
Original List : [Geeks Geeks] After Adding element at index 1 : [Geeks For Geeks] Element removed from index 0 : [For Geeks] Element Geeks removed : [For] List after updation of value : [GFG]
تعقيد Java ArrayList
عملية | تعقيد الوقت | تعقيد الفضاء طبقات نموذج OSI |
|---|---|---|
إدراج عنصر في ArrayList | يا(1) | على) |
إزالة العنصر من ArrayList | على) | يا(1) |
اجتياز العناصر في ArrayList | على) افعل وأثناء الحلقة في Java | على) |
استبدال العناصر في ArrayList | يا(1) | يا(1) |
طرق قائمة جافا ArrayList
| طريقة | وصف |
|---|---|
| إضافة (عنصر كائن فهرس int) | تُستخدم هذه الطريقة لإدراج عنصر محدد في فهرس موضع محدد في القائمة. |
| إضافة (كائن س) | تُستخدم هذه الطريقة لإلحاق عنصر محدد بنهاية القائمة. |
| addAll(المجموعة ج) | تُستخدم هذه الطريقة لإلحاق جميع العناصر من مجموعة معينة بنهاية القائمة المذكورة بالترتيب الذي يتم من خلاله إرجاع القيم بواسطة مكرر المجموعة المحددة. |
| addAll(int مجموعة الفهرس C) | يستخدم لإدراج جميع العناصر بدءًا من الموضع المحدد من مجموعة معينة في القائمة المذكورة. |
| واضح() | يتم استخدام هذه الطريقة لإزالة كافة العناصر من أي قائمة. |
| استنساخ () | يتم استخدام هذه الطريقة لإرجاع نسخة سطحية من ArrayList في Java. |
| يحتوي على (كائن س) | يُرجع صحيحًا إذا كانت هذه القائمة تحتوي على العنصر المحدد. |
| ضمان السعة (كثافة العمليات الدقيقة) | زيادة سعة مثيل ArrayList هذا إذا لزم الأمر للتأكد من أنه يمكنه الاحتفاظ على الأقل بعدد العناصر المحددة بواسطة وسيطة الحد الأدنى للسعة. |
| لكل (المستهلك super E>فعل) | ينفذ الإجراء المحدد لكل عنصر من عناصر Iterable حتى تتم معالجة جميع العناصر أو يلقي الإجراء استثناءً. |
| الحصول على (مؤشر كثافة العمليات) | إرجاع العنصر في الموضع المحدد في هذه القائمة. |
| فهرس (الكائن O) | يتم إرجاع الفهرس الذي يمثل التواجد الأول لعنصر معين أو -1 في حالة عدم وجود العنصر في القائمة. |
| فارغ () | يُرجع صحيحًا إذا كانت هذه القائمة لا تحتوي على عناصر. |
| lastIndexOf (الكائن O) | يتم إرجاع فهرس آخر تواجد لعنصر معين أو -1 في حالة عدم وجود العنصر في القائمة. |
| مكرر القائمة () | يُرجع مكرر القائمة فوق العناصر الموجودة في هذه القائمة (بالتسلسل الصحيح). |
| مكرر القائمة (مؤشر كثافة العمليات) | يُرجع مكرر القائمة فوق العناصر الموجودة في هذه القائمة (بالتسلسل الصحيح) بدءًا من الموضع المحدد في القائمة. |
| إزالة (مؤشر كثافة العمليات) | إزالة العنصر في الموضع المحدد في هذه القائمة. |
| إزالة (الكائن س) | إزالة التواجد الأول للعنصر المحدد من هذه القائمة إذا كان موجوداً. |
| إزالة الكل (المجموعة ج) | يزيل من هذه القائمة جميع عناصرها الموجودة في المجموعة المحددة. |
| إزالة إذا (مرشح المسند) | يزيل كافة عناصر هذه المجموعة التي تلبي المسند المحدد. |
| إزالة النطاق (int fromIndex int toIndex) | يزيل من هذه القائمة كافة العناصر التي يقع فهرسها بين الفهرس الشامل والفهرس الحصري. |
| الاحتفاظ بالكل(مجموعة>ج) | يحتفظ فقط بالعناصر الموجودة في هذه القائمة والمضمنة في المجموعة المحددة. |
| مجموعة (عنصر الفهرس E) | يستبدل العنصر الموجود في الموضع المحدد في هذه القائمة بالعنصر المحدد. |
| مقاس() | إرجاع عدد العناصر في هذه القائمة. |
| الفاصل () | ينشئ أداة تقسيم متأخرة وسريعة الفشل على العناصر الموجودة في هذه القائمة. |
| القائمة الفرعية (int fromIndex int toIndex) | يُرجع عرضًا لجزء من هذه القائمة بين المحدد من الفروم إندكس الشامل والحصري من الفروم إندكس. |
| toArray() | يتم استخدام هذه الطريقة لإرجاع مصفوفة تحتوي على كافة العناصر الموجودة في القائمة بالترتيب الصحيح. |
| toArray(كائن[] O) | يتم استخدامه أيضًا لإرجاع مصفوفة تحتوي على جميع العناصر الموجودة في هذه القائمة بالترتيب الصحيح تمامًا مثل الطريقة السابقة. |
| تقليمToSize() | يتم استخدام هذه الطريقة لتقليص سعة مثيل ArrayList إلى الحجم الحالي للقائمة. |