تصريح المصفوفات في Java: كيفية تهيئة Array مع أمثلة عملية

دقائق القراءة: 5

تُعد Arrays من البنى الأساسية في Java، وهي من أكثر الأدوات استخدامًا عند التعامل مع مجموعات من البيانات المتشابهة. فإذا كنت بحاجة إلى تخزين عدة قيم من النوع نفسه داخل متغير واحد، فإن المصفوفة توفر لك طريقة منظمة وفعالة لتحقيق ذلك.

في هذا الدليل العملي، ستتعرف على مفهوم المصفوفات في Java، وكيفية تصريح Array وتهيئتها بأكثر من أسلوب، بالإضافة إلى كيفية المرور على عناصرها باستخدام for loop وenhanced for loop.

رسم توضيحي يشرح مفهوم المصفوفات Arrays في Java وكيفية تنظيم العناصر داخل الذاكرة

ما هي المصفوفة Array في Java؟

المصفوفة أو Array هي بنية بيانات تُستخدم لتخزين مجموعة من القيم التي تنتمي إلى النوع نفسه، مثل String أو int أو double. وبدلًا من إنشاء متغير مستقل لكل قيمة، يمكنك جمع هذه القيم داخل مصفوفة واحدة.

لكل قيمة داخل المصفوفة موقع محدد يُعرف باسم index، بينما تُسمى القيمة نفسها element. ومن المهم معرفة أن المصفوفات في Java تعتمد على zero-based indexing، أي أن العد يبدأ من 0 وليس من 1.

كيفية تصريح وتهيئة Array في Java

هناك طريقتان شائعتان لتصريح المصفوفات وتهيئتها في Java:

  • باستخدام new keyword.
  • باستخدام الأقواس المعقوفة { } مباشرة.

1) تهيئة المصفوفة باستخدام new keyword

أولًا، يمكنك تصريح المصفوفة باستخدام الصيغة التالية:

dataType [] nameOfArray;
  • dataType: نوع البيانات التي ستخزنها المصفوفة، مثل String أو int.
  • []: تشير إلى أن المتغير عبارة عن مصفوفة.
  • nameOfArray: اسم المصفوفة.

لكن التصريح وحده لا يكفي، بل يجب تهيئة المصفوفة أيضًا من خلال تحديد حجمها:

dataType [] nameOfArray = new dataType[size];

يشير size إلى عدد العناصر التي يمكن للمصفوفة تخزينها. وبعد تحديد هذا الحجم، لا يمكنك إضافة عناصر أكثر من العدد المسموح به داخل المصفوفة نفسها.

إليك مثالًا عمليًا:

package com.kolade;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        String[] names = new String[3];
        names[0] = "Quincy";
        names[1] = "Abbey";
        names[2] = "Kolade";
    }
}

في هذا المثال:

  • اسم المصفوفة هو names.
  • نوع البيانات هو String.
  • حجم المصفوفة هو 3.

وبالتالي ستكون مواقع العناصر كما يلي:

  • Quincy عند index 0
  • Abbey عند index 1
  • Kolade عند index 2

إذا حاولت إضافة عنصر جديد مثل:

names[3] = "Chris";

فستحصل على خطأ، لأنك حددت مسبقًا أن حجم المصفوفة يساوي 3 فقط.

رسالة خطأ في Java عند محاولة إضافة عنصر خارج حدود المصفوفة Array index out of bounds

ولطباعة المصفوفة في نافذة الإخراج، يمكنك استخدام الدالة المضمنة toString() من خلال Arrays:

System.out.println(Arrays.toString(names));

ناتج طباعة عناصر مصفوفة String في Java باستخدام Arrays.toString

2) تهيئة المصفوفة في سطر واحد

يمكنك أيضًا تهيئة المصفوفة مباشرة في سطر واحد باستخدام الأقواس المعقوفة، وهي طريقة مختصرة وعملية عندما تكون القيم معروفة مسبقًا:

dataType [] nameOfArray = {value1, value2, value3, value4};

في هذا الأسلوب، لا تحتاج إلى كتابة حجم المصفوفة يدويًا، لأن Java تستنتج العدد تلقائيًا من القيم التي أدخلتها.

مثال:

package com.kolade;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        String[] namesTwo = {"Quincy", "Abbey", "Kolade", "Chris", "Kayode"};
    }
}

يُعد هذا الأسلوب مناسبًا عندما تكون البيانات ثابتة منذ البداية، كما أنه يجعل الكود أكثر اختصارًا ووضوحًا.

عرض قيم مصفوفة في Java بعد تهيئتها مباشرة باستخدام الأقواس المعقوفة

كيفية المرور على عناصر Array في Java

بعد إنشاء المصفوفة وتهيئتها، تأتي الخطوة التالية وهي التعامل مع عناصرها. في Java، يمكنك المرور على عناصر المصفوفة باستخدام أكثر من طريقة، وأشهرها:

  • for loop
  • enhanced for loop

استخدام for loop مع المصفوفات

تُعد for loop الخيار الأفضل عندما تحتاج إلى الوصول إلى index الخاص بكل عنصر.

الصيغة الأساسية:

for (dataType i = 0; i < nameOfArray.length; i++) {
    // Code to execute
}

وللتطبيق على المصفوفة namesTwo:

package com.kolade;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        String[] namesTwo = {"Quincy", "Abbey", "Kolade", "Chris", "Kayode"};

        for (int i = 0; i < namesTwo.length; i++) {
            System.out.println("Element at index " + i + " : " + namesTwo[i]);
        }
    }
}

لاحظ استخدام الخاصية length للحصول على عدد عناصر المصفوفة، وهي طريقة آمنة تمنع تجاوز حدودها أثناء التكرار.

مثال على استخدام for loop للمرور على عناصر المصفوفة في Java مع إظهار الفهرس والقيمة

استخدام enhanced for loop

إذا كنت تريد قراءة العناصر فقط دون الحاجة إلى معرفة index الخاص بكل عنصر، فإن enhanced for loop تمنحك أسلوبًا أبسط وأنظف لكتابة الكود.

الصيغة الأساسية:

for (dataType variable : nameOfArray) {
    // Code to execute
}

مثال عملي:

package com.kolade;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        String[] namesTwo = {"Quincy", "Abbey", "Kolade", "Chris", "Kayode"};

        for (String names : namesTwo) {
            System.out.println(names);
        }
    }
}

ميزة هذا الأسلوب أنه أكثر قابلية للقراءة، خاصة في الحالات التي لا تحتاج فيها إلى التعامل مع الفهارس. أما إذا كنت تريد تعديل عنصر بناءً على موقعه أو طباعة ترتيبه، فالأفضل استخدام for loop التقليدية.

استخدام enhanced for loop في Java لطباعة عناصر المصفوفة بطريقة مبسطة

مقارنة سريعة بين طرق تهيئة Array وطرق التكرار عليها

العنصر الطريقة متى تُستخدم؟
تهيئة المصفوفة new keyword عندما تعرف الحجم مسبقًا وتريد إدخال القيم لاحقًا
تهيئة المصفوفة { } عندما تكون القيم معروفة من البداية
التكرار على العناصر for loop عندما تحتاج إلى index
التكرار على العناصر enhanced for loop عندما تحتاج فقط إلى قراءة القيم بسهولة

أفضل ممارسات التعامل مع Arrays في Java

  • تأكد دائمًا من عدم تجاوز حدود المصفوفة لتفادي أخطاء ArrayIndexOutOfBoundsException.
  • استخدم Arrays.toString() عند الحاجة إلى طباعة المصفوفات النصية أو العددية بسرعة.
  • اختر enhanced for loop إذا كان هدفك هو القراءة فقط وتحسين وضوح الكود.
  • اختر for loop إذا كنت بحاجة إلى الوصول إلى الفهارس أو تنفيذ منطق يعتمد على موضع العنصر.
  • إذا كنت تحتاج إلى حجم متغير ديناميكي، فقد تكون ArrayList خيارًا أنسب من Array.

الخلاصة التقنية

تُعتبر Arrays في Java نقطة انطلاق أساسية لفهم هياكل البيانات والتعامل مع مجموعات القيم بكفاءة. وإذا كنت تبحث عن الأداء والبساطة عند تخزين عناصر من النوع نفسه، فإن المصفوفات خيار ممتاز. عمليًا، يفضَّل استخدام التهيئة المباشرة بالأقواس المعقوفة عندما تكون البيانات معروفة مسبقًا، بينما يكون أسلوب new keyword أكثر ملاءمة عندما تحتاج إلى تحديد الحجم أولًا ثم تعبئة القيم لاحقًا. أما في التكرار، فاختيارك بين for loop وenhanced for loop يجب أن يعتمد على حاجتك إلى index من عدمها.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *