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 عبر الإنترنت هذه.