English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدرس، سنتعلم عن فئة Java ArrayList. سنتعلم من خلال الأمثلة كيفية إجراء العمليات المختلفة والأساليب في ArrayList.
فئة ArrayList هي تنفيذ لـ List interface وتسمح لنا بإنشاء أنواع قابلة للتوسع.
في Java، يجب علينا أولاً إعلان حجم النوع، ثم يمكننا استخدامه. بمجرد إعلان حجم النوع، يصبح من الصعب تغييره.
لحل هذه المشكلة، يمكننا استخدام فئة ArrayList. فئة ArrayList الموجودة في حزمة java.util تسمح لنا بإنشاء أنواع قابلة للتوسع.
على عكس الأنواع، يمكن لقائمة الأنواع (مثل objekt ArrayList) أن تضبط حجمها تلقائيًا عند إضافة أو إزالة العناصر. لذلك، تُعرف قائمة الأنواع أيضًا باسم ديناميكية الأنواع.
هذه هي الطرق التي يمكننا من خلالها إنشاء قوائم في Java:
ArrayList<Type> arrayList = new ArrayList<>();
في هذا السياق، Type يشير إلى نوع قائمة الأنواع. على سبيل المثال،
//إنشاء قائمة من نوع Integer ArrayList<Integer> arrayList = new ArrayList<>(); //إنشاء قائمة من نوع String ArrayList<String> arrayList = new ArrayList<>();
في البرنامج السابق، استخدمنا Integer وString. هنا، Integer هي الفئة الم封装ة للنوع int.
الفئات الم封装ة هي الفئات التي تؤمّن أنواع البيانات الأساسية. على سبيل المثال، فئة Integer تؤمّن نوع int، فئة Float تؤمّن نوع Float، وما إلى ذلك.
ملاحظة:لا يمكننا إنشاء قوائم من أنواع البيانات الأساسية (مثل int،float،char وما إلى ذلك). على العكس، يجب علينا استخدام الفئات الم封装ة المقابلة لها.
对于字符串,String是一个类,没有包装类。因此,我们按原样使用String。
我们还可以使用List接口创建ArrayList。这是因为ArrayList类实现了List接口。
List<String> list = new ArrayList<>();
ArrayList 提供了允许我们执行数组列表操作的各种方法。
1.使用 add() 方法
要将单个元素添加到数组列表,我们使用add()方法。例如,
import java.util.ArrayList; class Main { public static void main(String[] args){ ArrayList<String> animals = new ArrayList<>(); //添加元素 animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayList: " + animals); } }
نتيجة الإخراج
ArrayList: [Dog, Cat, Horse]
2.使用索引号
我们还可以使用索引将元素添加到数组列表中。例如,
import java.util.ArrayList; class Main { public static void main(String[] args){ ArrayList<String> animals = new ArrayList<>(); //添加元素 animals.add(0, "Dog"); animals.add(1, "Cat"); animals.add(2, "Horse"); System.out.println("ArrayList: " + animals); } }
نتيجة الإخراج
ArrayList: [Dog, Cat, Horse]
3.将一个数组列表的元素添加到另一个数组列表
要将数组列表的所有元素添加到新的数组列表,请使用addAll()方法。例如,
import java.util.ArrayList; class Main { public static void main(String[] args){ ArrayList<String> mammals = new ArrayList<>(); mammals.add("Dog"); mammals.add("Cat"); mammals.add("Horse"); System.out.println("Mammals: " + mammals); ArrayList<String> animals = new ArrayList<>(); animals.add("Crocodile"); // 添加mammals所有元素到animals animals.addAll(mammals); System.out.println("Animals: " + animals); } }
نتيجة الإخراج
Mammals: [Dog, Cat, Horse] Animals: [Crocodile, Dog, Cat, Horse]
与数组不同,我们不能直接初始化数组列表。 但是,我们可以使用Arrays类的asList()方法来达到相同的效果。
为了使用asList()方法,我们必须先导入 java.util.Arrays 包。
例如,
import java.util.ArrayList; import java.util.Arrays; class Main { public static void main(String[] args) { //إنشاء قائمة مرتبة ArrayList<String> animals = new ArrayList<>(Arrays.asList("Cat", "Cow", "Dog")); System.out.println("ArrayList: " + animals); //استعراض العنصر في قائمة الأعداد String element = animals.get(1); System.out.println("استعراض العنصر: " + element); } }
نتيجة الإخراج
ArrayList: [Cat, Cow, Dog] استعراض العنصر: Cow
في المثال السابق، لاحظ التعبير التالي:
new ArrayList<>(Arrays.asList("Cat", "Cow", "Dog"));
في هذا المثال، نبدأ بثلاثة عناصر في قائمة الأعداد: "Cat"، "Cow"، و"Dog". ثم، يستخدم طريقة asList() لتحويل القائمة إلى قائمة أعداد.
1. استخدام طريقة get()
للوصول إلى عناصر قائمة الأعداد عشوائياً، نستخدم طريقة get(). على سبيل المثال،
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); // إضافة عنصر إلى قائمة الأنواع animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); System.out.println("ArrayList: " + animals); //استخراج العنصر من قائمة الأعداد String str = animals.get(0); System.out.print("العنصر في الموقع 0: " + str); } }
نتيجة الإخراج
ArrayList: [Dog, Horse, Cat] العنصر في الموقع 0: Dog
2. استخدام طريقة iterator()
للوصول إلى عناصر قائمة الأعداد بالترتيب، نستخدم طريقة iterator(). يجب علينا استيراد مكتبة java.util.Iterator لاستخدام هذه الطريقة. على سبيل المثال،
import java.util.ArrayList; import java.util.Iterator; class Main { public static void main(String[] args){ ArrayList<String> animals = new ArrayList<>(); // إضافة عنصر إلى قائمة الأنواع animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); animals.add("Zebra"); //إنشاء كائن Iterator Iterator<String> iterate = animals.iterator(); System.out.print("ArrayList: "); //استخدام طرق Iterator للاستعلام عن العناصر while(iterate.hasNext()){ System.out.print(iterate.next()); System.out.print(", "); } } }
نتيجة الإخراج
ArrayList: Dog, Cat, Horse, Zebra,
ملاحظات:
hasNext() - إذا كان هناك عنصر تالي في قائمة الأعداد، فإنه يعود صحيح.
next() - عودة العنصر التالي في قائمة الأعداد
لإجراء تعديل على قائمة الأعداد، يمكننا استخدام طريقة set(). على سبيل المثال،
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); // إضافة عنصر إلى قائمة الأنواع animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayList: " + animals); //تعديل عنصر قائمة الأعداد animals.set(2, "Zebra"); System.out.println("تعديل ArrayList: " + animals); } }
نتيجة الإخراج
ArrayList: [Dog, Cat, Horse] ArrayList بعد التعديل: [Dog, Cat, Zebra]
1.استخدام طريقة remove()
لحذف عنصر من قائمة مرتبة، يمكننا استخدام طريقة remove(). على سبيل المثال،
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); // إضافة عنصر إلى قائمة الأنواع animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayList البدائية: " + animals); //حذف العنصر من索ق 2 String str = animals.remove(2); System.out.println("ArrayList النهائية: " + animals); System.out.println("حذف العنصر: " + str); } }
نتيجة الإخراج
ArrayList البدائية: [Dog, Cat, Horse] ArrayList النهائية: [Dog, Cat] حذف العنصر: Horse
2.استخدام طريقة removeAll()
لحذف جميع العناصر من قائمة مرتبة، نستخدم طريقة removeAll(). على سبيل المثال،
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); //إضافة عنصر إلى ArrayList animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayList البدائية: " + animals); //حذف جميع العناصر animals.removeAll(animals); System.out.println("ArrayList النهائية: " + animals); } }
نتيجة الإخراج
ArrayList البدائية: [Dog, Cat, Horse] ArrayList النهائية: []
3.استخدام طريقة clear()
يمكننا أيضًا استخدام طريقة clear() لحذف جميع العناصر من قائمة مرتبة. على سبيل المثال،
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); // إضافة عنصر إلى قائمة الأنواع animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayList البدائية: " + animals); //حذف جميع العناصر animals.clear(); System.out.println("ArrayList النهائية: " + animals); } }
نتيجة الإخراج
ArrayList البدائية: [Dog, Cat, Horse] ArrayList النهائية: []
ملاحظة:طريقة clear() أكثر كفاءة من طريقة removeAll()
1.استخدام حلقة for
import java.util.ArrayList; class Main { public static void main(String[] args) { //إنشاء قائمة مرتبة ArrayList<String> animals = new ArrayList<>(); animals.add("Cow"); animals.add("Cat"); animals.add("Dog"); System.out.println("ArrayList: " + animals); //استخدام حلقة for System.out.println("زيارة جميع العناصر: "); لـ (int i = 0; i < animals.size(); i++) { System.out.print(animals.get(i)); System.out.print(", "); } } }
نتيجة الإخراج
ArrayList: [Cow, Cat, Dog] زيارة جميع العناصر: Cow, Cat, Dog,
2.استخدام حلقة forEach
import java.util.ArrayList; class Main { public static void main(String[] args) { //إنشاء قائمة مرتبة ArrayList<String> animals = new ArrayList<>(); animals.add("Cow"); animals.add("Cat"); animals.add("Dog"); System.out.println("ArrayList: " + animals); //استخدام حلقة forEach System.out.println("زيارة جميع العناصر: "); لـ (String animal : animals) { System.out.print(animal); System.out.print(", "); } } }
نتيجة الإخراج
ArrayList: [Cow, Cat, Dog] زيارة جميع العناصر: Cow, Cat, Dog,
في كلا المثالين، قمنا بزيارة جميع عناصر قائمة الأنواع باستخدام دائرة
للحصول على طول قائمة الأنواع، نستخدم طريقة size(). على سبيل المثال،
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); // إضافة عنصر إلى قائمة arrayList animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); System.out.println("ArrayList: " + animals); // الحصول على حجم قائمة arrayList System.out.println("حجم قائمة arrayList: " + animals.size()); } }
نتيجة الإخراج
ArrayList: [Dog, Horse, Cat] حجم قائمة arrayList: 3
لترتيب عناصر قائمة الأنواع، نستخدم طريقة sort() من فئة Collections. لاستخدامها، يجب علينا أولاً استيراد حزمة java.util.Collections.
بالتقديم، الترتيب يكون من ترتيب الأبجدية أو الأرقام تصاعديًا. على سبيل المثال،
import java.util.ArrayList; import java.util.Collections; class Main { public static void main(String[] args){ ArrayList<String> animals = new ArrayList<>(); // إضافة عنصر إلى قائمة الأنواع animals.add("Horse"); animals.add("Zebra"); animals.add("Dog"); animals.add("Cat"); System.out.println("قائمة ArrayList قبل الترتيب: " + animals); // ترتيب قائمة الأنواع Collections.sort(animals); System.out.println("قائمة ArrayList بعد الترتيب: " + animals); } }
نتيجة الإخراج
قائمة ArrayList قبل الترتيب: [Horse, Zebra, Dog, Cat] قائمة ArrayList بعد الترتيب: [Cat, Dog, Horse, Zebra]
للحصول على معلومات إضافية حول ترتيب قائمة الأنواع، يرجى زيارة Java ArrayList sort.
في Java، يمكننا استخدام طريقة toArray() لتحويل قائمة الأنواع إلى مصفوفة. على سبيل المثال،
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); // إضافة عنصر إلى قائمة الأنواع animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayList: " + animals); // تنشئة قائمة من نوع String جديدة بحجم حجم مجموعة الحيوانات String[] arr = new String[animals.size()]; //将ArrayList转换成数组 animals.toArray(arr); System.out.print("Array: "); for(String item:arr) { System.out.print(item+", "); } } }
نتيجة الإخراج
ArrayList: [Dog, Cat, Horse] Array: Dog, Cat, Horse,
我们还可以将数组转换为数组列表。为此,我们可以使用Arrays类的asList()方法。
要使用asList(),我们必须先导入java.util.Arrays包。例如,
import java.util.ArrayList; import java.util.Arrays; class Main { public static void main(String[] args) { //创建一个字符串类型的数组 String[] arr = {"Dog", "Cat", "Horse"}; System.out.print("Array: "); //打印数组 for(String str: arr) { System.out.print(str); System.out.print(" "); } //从数组创建ArrayList ArrayList<String> animals = new ArrayList<>(Arrays.asList(arr)); System.out.println("\nArrayList: " + animals); } }
نتيجة الإخراج
Array: Dog, Cat, Horse ArrayList: [Dog, Cat, Horse]
在上面的程序中,我们首先创建了String类型的数组arr。
然后,我们使用asList()方法将数组转换为数组列表。
要将数组列表转换为字符串,可以使用toString()方法。例如
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); //在ArrayList中添加元素 animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayList: " + animals); //تحويل ArrayList إلى String String str = animals.toString(); System.out.println("String: " + str); } }
نتيجة الإخراج
ArrayList: [Dog, Cat, Horse] String: [Dog, Cat, Horse]
ملاحظة: toString() يحوّل قائمة الأعداد بأكملها إلى String واحد.
الطريقة | وصف المحتوى |
---|---|
clone() | إنشاء قائمة أعداد جديدة تحتوي على نفس العناصر، الحجم والقدرة. |
contains() | البحث عن العنصر المحدد في قائمة الأعداد وتقديم قيمة بولية. |
ensureCapacity() | عدد العناصر التي يمكن أن تحتويها قائمة الأعداد. |
isEmpty() | التحقق مما إذا كانت قائمة الأعداد فارغة. |
indexOf() | البحث عن العنصر المحدد في قائمة الأعداد وتقديم مكان العنصر. |
trimToSize() | تقليل حجم قائمة الأعداد إلى الحجم الحالي. |