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

ما هو Java مجموعة مصفوفة؟
A Java مجموعة هي بنية ذات حجم ثابت تخزن عناصر من نوع بيانات واحد في ذاكرة متجاورة. يتم الوصول إلى كل عنصر بواسطة فهرس يبدأ من الصفر، لذا فإن العنصر الأول يقع في 0 والأخير في length - 1ترث المصفوفات من Object وتنفيذها Serializable و Cloneableويمكنها أن تحتوي على عناصر أولية أو مراجع كائنات.
تُستبدل المصفوفات بسلاسل طويلة من المتغيرات المرقمة. لنفترض وجود ستة أعداد صحيحة مستقلة:
x0 = 0; x1 = 1; x2 = 2; x3 = 3; x4 = 4; x5 = 5;
توجد نفس القيم الست في مصفوفة واحدة طولها ستة:
x[0] = 0; x[1] = 1; x[2] = 2; x[3] = 3; x[4] = 4; x[5] = 5;
A حلقة يمكن للمتغير أن يتحكم في الفهرس الموجود بين قوسين، لذا فإن ثلاثة أسطر تعالج كل عنصر بدلاً من ست نسخ:
for (int count = 0; count < 5; count++) { System.out.println(x[count]); }
أنواع المصفوفات في Java
Java تأتي المصفوفات في شكلين:
- مصفوفة أحادية البعد: قائمة مسطحة من العناصر.
- مصفوفة متعددة الأبعاد: مجموعة من المصفوفات، تُستخدم للشبكات والمصفوفات.
متغيرات المصفوفة: التصريح عنها، وإنشاؤها، وتهيئتها
استخدام المصفوفة هو ثلاث خطوات عملية: أعلن، أنشئ باستخدام newثم قم بالتهيئة.
1) قم بتعريف المصفوفة
بناء الجملة:
<elementType>[] <arrayName>;
or (النموذج القديم على نمط C، لا يزال صالحًا):
<elementType> <arrayName>[];
على سبيل المثال:
int[] intArray; // canonical form: brackets on the type int intArray2[]; // legacy C-style form, discouraged in new code
2) إنشاء المصفوفة
بناء الجملة:
arrayName = new dataType[size];
على سبيل المثال:
intArray = new int[10]; // defines that intArray will store 10 integer values
الإعلان والبناء معًا:
int[] intArray = new int[10];
3) تهيئة المصفوفة
intArray[0] = 1; // assigns 1 to the first element (index 0) intArray[1] = 2; // assigns 2 to the second element (index 1)
قم بالإعلان والتهيئة في خطوة واحدة باستخدام مصفوفة حرفية:
int[] intArray = {1, 2, 3, 4}; // initialises an integer array of length 4 where the first element is 1, // the second element is 2, and so on.
أول برنامج للمصفوفات في Java
الخطوة 1) انسخ الكود التالي إلى محرر النصوص:
class ArrayDemo { public static void main(String args[]) { int array[] = new int[7]; for (int count = 0; count < 7; count++) { array[count] = count + 1; } for (int count = 0; count < 7; count++) { System.out.println("array[" + count + "] = " + array[count]); } // System.out.println("Length of Array = " + array.length); // array[8] = 10; } }
الخطوة 2) احفظ الكود، ثم قم بتجميعه وتشغيله. لاحظ الناتج.
الناتج المتوقع:
array[0] = 1 array[1] = 2 array[2] = 3 array[3] = 4 array[4] = 5 array[5] = 6 array[6] = 7
الخطوة 3) If x هو مرجع للمصفوفة، x.length يُعيد عدد خاناته. قم بإلغاء التعليق على السطر الأول المُعلّق وأعد تشغيل البرنامج:
Length of Array = 7
الخطوة 4) على عكس ج، Java يُجري فحصًا لحدود المصفوفة عند كل عملية وصول إليها. قم بإلغاء التعليق على السطر الثاني المُعلّق وأعد تشغيل البرنامج:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8 at ArrayDemo.main(ArrayDemo.java:11) Command exited with non-zero status 1
الخطوة 5) رميات JVM ArrayIndexOutOfBoundsExceptionفي لغة C، سيؤدي الوصول نفسه إلى إرجاع بيانات غير صالحة من الذاكرة المجاورة بدلاً من الفشل.
Java المصفوفة: تمرير بالمرجع
يتم تمرير المصفوفات إلى الدوال عن طريق المرجع. تتلقى الدالة نسخة من المرجع، لذا فإن التغييرات التي تُجرى على العناصر داخل الدالة تكون مرئية للمستدعي.
مثال: يتم تمرير المصفوفات بالمرجع.
الخطوة 1) انسخ الكود التالي إلى محرر النصوص:
class ArrayDemo { public static void passByReference(String a[]) { a[0] = "Changed"; } public static void main(String args[]) { String[] b = {"Apple", "Mango", "Orange"}; System.out.println("Before Function Call " + b[0]); ArrayDemo.passByReference(b); System.out.println("After Function Call " + b[0]); } }
الخطوة 2) احفظ الكود، ثم قم بتجميعه وتشغيله. لاحظ الناتج.
الناتج المتوقع:
Before Function Call Apple After Function Call Changed
المصفوفات متعددة الأبعاد في Java
المصفوفات متعددة الأبعاد هي مصفوفات من المصفوفات. أضف مجموعة أخرى من الأقواس المربعة لكل بُعد. لإنشاء شبكة أعداد صحيحة ثنائية الأبعاد بأربعة صفوف وخمسة أعمدة:
int[][] twoD = new int[4][5];
يكفي تحديد البُعد الأول (الأيسر) مُسبقًا. أما الأبعاد المتبقية، فيمكن تحديدها بشكل منفصل، ويمكن أن يكون لكل صف طوله الخاص، مما يجعل Java المصفوفات ثنائية الأبعاد صحيحة المصفوفات غير المنتظمة.
على سبيل المثال:
public class Guru99 { public static void main(String[] args) { // Create a 2-dimensional array with 4 rows and 4 columns. int[][] twoD = new int[4][4]; // Assign three elements to it. twoD[0][0] = 1; twoD[1][1] = 2; twoD[3][2] = 3; System.out.print(twoD[0][0] + " "); } }
الناتج المتوقع:
1
