English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليميات Java الأساسية

Java Flow Control

Java Arrays

Java Object-Oriented (I)

Java Object-Oriented (II)

Java Object-Oriented (III)

معالجة الاستثناءات Java

Java List

Java Queue (Queue)

Java Map Collections

Java Set Collections

Java Input/Output (I/O)

Java Reader/Writer

مواضيع أخرى Java

قائمة Java ArrayList

في هذا الدرس، سنتعلم عن فئة Java ArrayList. سنتعلم من خلال الأمثلة كيفية إجراء العمليات المختلفة والأساليب في ArrayList.

فئة ArrayList هي تنفيذ لـ List interface وتسمح لنا بإنشاء أنواع قابلة للتوسع.

أنواع Java مع ArrayList

في Java، يجب علينا أولاً إعلان حجم النوع، ثم يمكننا استخدامه. بمجرد إعلان حجم النوع، يصبح من الصعب تغييره.

لحل هذه المشكلة، يمكننا استخدام فئة ArrayList. فئة ArrayList الموجودة في حزمة java.util تسمح لنا بإنشاء أنواع قابلة للتوسع.

على عكس الأنواع، يمكن لقائمة الأنواع (مثل objekt ArrayList) أن تضبط حجمها تلقائيًا عند إضافة أو إزالة العناصر. لذلك، تُعرف قائمة الأنواع أيضًا باسم ديناميكية الأنواع.

إنشاء 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的方法

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]

使用asList()初始化ArrayList

与数组不同,我们不能直接初始化数组列表。 但是,我们可以使用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() لتحويل القائمة إلى قائمة أعداد.

استعراض عناصر ArrayList

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() - عودة العنصر التالي في قائمة الأعداد

تعديل عناصر ArrayList

لإجراء تعديل على قائمة الأعداد، يمكننا استخدام طريقة 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]

حذف عنصر ArrayList

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()

استعراض ArrayList

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,

في كلا المثالين، قمنا بزيارة جميع عناصر قائمة الأنواع باستخدام دائرة

الحصول على طول ArrayList

للحصول على طول قائمة الأنواع، نستخدم طريقة 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

ترتيب عناصر ArrayList

لترتيب عناصر قائمة الأنواع، نستخدم طريقة 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.

تحويل قائمة ArrayList إلى مصفوفة

في 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,

Java Array 转换为 ArrayList

我们还可以将数组转换为数组列表。为此,我们可以使用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()方法将数组转换为数组列表。

Java ArrayList 转换为 字符串

要将数组列表转换为字符串,可以使用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 واحد.

طرق ArrayList الأخرى

الطريقةوصف المحتوى
clone()

إنشاء قائمة أعداد جديدة تحتوي على نفس العناصر، الحجم والقدرة.

contains()

البحث عن العنصر المحدد في قائمة الأعداد وتقديم قيمة بولية.

ensureCapacity()

عدد العناصر التي يمكن أن تحتويها قائمة الأعداد.

isEmpty()

التحقق مما إذا كانت قائمة الأعداد فارغة.

indexOf()

البحث عن العنصر المحدد في قائمة الأعداد وتقديم مكان العنصر.

trimToSize()

تقليل حجم قائمة الأعداد إلى الحجم الحالي.