ArrayList في Java: مقدمة للمبتدئين [2022]
نشرت: 2022-11-22المصفوفة هي بنية بيانات أساسية وواسعة الانتشار في كل لغة برمجة لها عيب واحد - حجمها ثابت. دعونا نرى كيف يمكن أن يساعد ArrayList في Java في ذلك.
يمكن أن تتكون المصفوفة من نوعين: مصفوفة ثابتة أو مصفوفة ديناميكية. لا يمكن زيادة المصفوفة ديناميكيًا في لغات البرمجة مثل Java. بدلاً من ذلك ، يتم الإعلان عن حجم الصفيف أثناء تهيئة الصفيف. لكن في كثير من الحالات ، يمكن أن يؤدي ذلك إلى العديد من المشكلات. لحل هذه المشكلة ، يتم استخدام ArrayLists في Java. يزداد حجم الصفيف تلقائيًا عند دفع عنصر إلى ArrayList.
في هذه المقالة ، ستتعرف على ArrayLists في Java. ستفهم الفرق الأساسي بين Array و ArrayList وتتعرف أيضًا على الأنواع المختلفة من ArrayLists وكيفية استخدامها.
Array مقابل ArrayList
يتمثل الاختلاف الأساسي بين Array و ArrayList في أن حجم Array ثابت ، ولكن يمكن أن يكون حجم ArrayList ديناميكيًا. عندما يتم إصلاح المصفوفة ، يستغرق وقت التكرار عبر المصفوفة وقتًا أقل من المصفوفة الديناميكية.
هناك أيضًا بعض الاختلافات القليلة بينهما.
- يمكن أن تكون المصفوفة الثابتة أحادية أو متعددة الأبعاد ، لكن ArrayList يمكن أن تكون أحادية البعد فقط.
- المصفوفة هي بنية بيانات بدائية متوفرة في Java. لكن ArrayList هو جزء من Collection Framework API في Java. إنه مبني على قمة المصفوفات.
- يمكنك تعريف المصفوفات بأنواع البيانات الأولية. لا يمكن استخدام أنواع البيانات الأولية في ArrayList. إذا كنت تريد استخدام نوع بيانات بدائي ، فستحتاج إلى استخدام فئة التضمين المقابلة لنوع البيانات.
أنواع ArrayLists في Java
يمكن أن تكون قوائم ArrayLists من أي نوع. لكنك ستحتاج إلى اجتياز فئة التضمين المقابلة لأنه لا يمكنك تمرير أنواع البيانات الأولية في ArrayList.
يمكنك إضافة أنواع بيانات بسيطة مثل عدد صحيح أو أنواع سلسلة عن طريق تمرير فئات مجمعة مثل Integer
أو String
.
يمكنك أيضًا تمرير أنواع معقدة مثل ArrayLists of ArrayLists و hashmaps وما إلى ذلك.
دعنا نلقي نظرة على مثال لاستخدام فئة مخصصة داخل ArrayList.
import java.util.ArrayList; class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public void getUser() { System.out.println("Name: " + name + " Age: " + age); } } class Main { public static void main(String[] args) { ArrayList<User> users = new ArrayList<>(); users.add(new User("Subha", 25)); users.add(new User("Dan", 32)); users.forEach(user -> { user.getUser(); }); } } Output: Name: Subha Age: 25 Name: Dan Age: 32
في نموذج التعليمات البرمجية أعلاه ، يتم إنشاء ArrayList من نوع User
. ستتعلم المزيد حول الأساليب المستخدمة في المثال أدناه.
إنشاء ArrayList في Java
لقد فهمت بالفعل أساسيات ArrayList في Java. الآن دعنا نلقي نظرة على بناء جملة ArrayList ، وبعد ذلك ، سنرى أيضًا كيف يمكن استخدامه في كود Java.
ArrayList<Type> listName = new ArrayList<>();
يُظهر المقتطف أعلاه بنية تحديد ArrayList. Type
يحدد نوع ArrayList. على سبيل المثال ، إذا كنت تريد التصريح عن ArrayList لأنواع بيانات الأعداد الصحيحة ، يمكنك تمرير <Integer>
. لاحظ أنه لا يمكنك تمرير int
لأنه نوع بيانات بدائي.
ستحتاج أيضًا إلى استيراد java.util.ArrayList
لاستخدام ArrayList في برامجك. فيما يلي مثال أساسي لبرنامج يعلن ArrayList:
import java.util.ArrayList; class Main { public static void main(String[] args) { // Declare An ArrayList ArrayList<String> rainbow = new ArrayList<>(); System.out.println(rainbow); } } Output: []
في الكود أعلاه ، يتم الإعلان عن ArrayList المسمى rainbow
من نوع String
.
للعمل مع ArrayList ، هناك طرق متعددة متاحة. دعنا نلقي نظرة على بعض الطرق.
طريقة add
توفر فئة ArrayList طرقًا مختلفة لإجراء عمليات مثل إضافة العناصر أو إزالتها ، والحصول على القيم ، وتعيين قيمة في موضع معين ، ومسح ArrayList ، وما إلى ذلك.
الطريقة الأولى التي سنرى هي طريقة add
.
يتم استخدام طريقة add
عنصر واحد إلى ArrayList
. يظهر بناء الجملة الخاص add
أدناه.
arrayList.add(int i, Element)
دعونا نفهم بناء الجملة الآن. المعلمة الأولى i
هي معلمة اختيارية تمثل موضع الفهرس حيث العنصر الذي تريد إضافته. Element
الثاني هو العنصر الذي تريد إضافته. دعنا نلقي نظرة على مثال الآن.
rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet]
rainbow.add("Violet")
عنصرًا إلى نهاية ArrayList. ويضيف قوس قزح. rainbow.add(0, "Red")
العنصر Red
إلى موضع الفهرس 0
في ArrayList. طريقة add()
ترجع true
عند إدخال عنصر بنجاح.

طريقة get
يتم استخدام طريقة get
للحصول على القيمة من موضع محدد من ArrayList.
arrayList.get(int i);
i
الموضح في بناء الجملة أعلاه هو موضع الفهرس. على سبيل المثال ، إذا كنت تريد الحصول على العنصر من موضع الفهرس 1
، فاكتب arrayList.get(1)
.
rainbow.add("Violet"); rainbow.add(0, "Red"); String color = rainbow.get(1); System.out.println(color); Output: Violet
سيعود الرمز أعلاه Violet
من ArrayList rainbow
.
طريقة set
يتم استخدام طريقة set
لاستبدال قيمة العنصر. على سبيل المثال ، إذا كنت تريد استبدال قيمة عنصر في موضع الفهرس 0
، فاكتب rainbow.set(0, "Purple")
، بافتراض أن لديك ArrayList يسمى rainbow
.
صيغة طريقة set
كما يلي ،
arrayList.set(int i, Element);
حيث i
هو موضع الفهرس ، Element
هو قيمة العنصر الجديد.
rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet] rainbow.set(1, "Purple"); System.out.println(rainbow); Output: [Red, Purple]
في المثال أعلاه ، نضيف قيمتين إلى ArrayList تسمى rainbow
. أولاً ، يُضاف العنصر Violet
، ثم في الموضع 0
من ArrayList ، نضيف العنصر Red
. في هذه المرحلة ، تبدو قائمة ArrayList الكاملة هكذا ، [Red, Violet]
.
الآن ، يتم استبدال العنصر في موضع الفهرس 1
بالقيمة Purple
باستخدام طريقة set
. بعد استبدال القيمة ، ستبدو ArrayList هكذا ، [Red, Purple]
.
طريقة remove
يتم استخدام طريقة الإزالة ArrayList remove
قيمة من ArrayList. يمكنك إما تمرير القيمة أو موضع الفهرس للقيمة التي تريد إزالتها. يظهر بناء جملة طريقة remove
أدناه:
arrayList.remove(Object value); // or arrayList.remove(int i);
لنأخذ مثالاً لفهم أفضل للطريقة. افترض أن لديك ArrayList تسمى rainbow
بهذه القيم [Violet, Red, Green]
. الآن ، إذا كنت تريد إزالة Red
من ArrayList ، يمكنك كتابة rainbow.remove("Red");
. سيؤدي استدعاء هذه الطريقة في ArrayList rainbow
إلى إزالة العنصر Red
منه.
// rainbow = [Violet, Red, Green] rainbow.remove("Red"); System.out.println(rainbow); Output: [Violet, Green]
يمكنك أيضًا تمرير موضع الفهرس لإزالة العنصر في موضع الفهرس.
//rainbow = [Red, Green] rainbow.remove(0); // Remove item at index position 0 System.out.println(rainbow); Output: [Green]
الطريقة clear
كما يوحي الاسم ، فإن الطريقة clear
تزيل جميع العناصر من ArrayList. بناء الجملة واضح ومباشر ولا يتطلب أي معاملات.
arraylist.clear()
دعنا نلقي نظرة على مثال ،
rainbow.clear(); System.out.println(rainbow); Output: []
الطريقة clear
لا ترجع أي قيمة. بدلاً من ذلك ، فإنه يمسح قيمة ArrayList المحددة.
طريقة size
تقوم طريقة size
بإرجاع حجم ArrayList المحدد. هذه الطريقة أيضًا لا تأخذ أي معلمات. يظهر بناء الجملة أدناه.
arrayList.size();
arrayList
هي اسم ArrayList هنا. دعونا نفهم طريقة size
بمساعدة مثال.
ArrayList<String> rainbow = new ArrayList<>(); rainbow.add("Violet"); rainbow.add("Red"); rainbow.add("Green"); System.out.println(rainbow.size()); Output: 3
ترجع هذه الطريقة قيمة حجم ArrayList. في المثال أعلاه ، يتكون rainbow
ArrayList من ثلاث قيم ، لذا فإن طريقة size
ترجع 3.
استنتاج
ناقش هذا المقال ماهية ArrayList وكيف تختلف عن Array. لقد رأينا أيضًا كيف يمكن الإعلان عن ArrayList واستخدامه باستخدام طرق مختلفة متاحة لفئة ArrayList.
إذا كنت تريد التعمق أكثر في تعلم Java ، فراجع دورات Java عبر الإنترنت هذه.