الكورس

Advertisements

Java Arrays


المصفوفة (array) عبارة عن كائن يحتوي على عناصر من نوع بيانات مشابه لتخزين قيم متعددة في متغير واحد.

المصفوفة بنية بيانات حيث نقوم بتخزين العناصر المتشابهة بها + يمكننا تخزين مجموعة ثابتة فقط من العناصر في مصفوفة Java.

المصفوفة قائمة على الـ index (الفهرس)، يتم تخزين العنصر الأول من المصفوفة في الفهرس رقم 0 ، ثم العنصر الثاني في الفهرس رقم 1 وهكذا.


أنواع المصفوفات في Java

هناك نوعان من المصفوفة:

  • صفيف أحادي البعد Single Dimensional
  • صفيف متعدد الأبعاد Multidimensional

Single Dimensional Array in Java

بناء الجملة للإعلان عن مصفوفة:

// First method
dataType[] arr;
// Second method
dataType []arr;
// Third method
dataType arr[];

مثال لإنشاء مصفوفة بها قيم string و integer:

// Array of Strings
String[] numbers_str = {"One", "Two", "Three", "Four", "Five"};
// Array of Integers
int[] numbers_int = {1, 2, 3, 4, 5};

💡 لاحظ يُكتب قيم المصفوفة داخل أقواس متعرجة {} وبين كل قيمة والأخرى تم وضع  comma (,).


Access Elements of an Array


يمكنك الوصول إلى عنصر صفيف بالرجوع إلى رقم الفهرس index.

💡 تبدأ فهارس المصفوفة بـ 0 (أى رقم [0] هو العنصر الأول، ورقم [1] هو العنصر الثاني ، وهكذا).

 

مثال للتوضيح:

String[] numbers_str = {"One", "Two", "Three", "Four", "Five"};
System.out.println(numbers_str[1]); // outputs = Two

Change an Array Element

 

يمكنك تغيير قيمة عنصر معين عن طريق رقم الفهرس:

String[] numbers_str = {"One", "Two", "Three", "Four", "Five"};
System.out.println(numbers_str[1]); // outputs = Two
numbers_str[1] = "Ten";
System.out.println(numbers_str[1]); // outputs =  Ten not Two

For-each Loop for Java Array

 

يمكننا أيضًا طباعة مصفوفة Java باستخدام حلقة for-each + تطبع حلقة Java لكل عنصر عناصر المصفوفة واحدة تلو الأخرى.

 

بناء جملة for-each كالتالى:

for(data_type variable:array){  
  // Body of the loop  
}  

مثال للتوضيح:

String[] numbers_arr = {"One", "Two", "Three", "Four", "Five"};
for(String i: numbers_arr){
  System.out.println("Number is: " + i);
}

outputs:

Number is: One
Number is: Two
Number is: Three
Number is: Four
Number is: Five

Array Length

 

لمعرفة عدد العناصر التي يحتوي عليها المصفوفة ، استخدم خاصية length، كالتالى:

String[] numbers_arr = {"One", "Two", "Three", "Four", "Five"};
System.out.println(numbers_arr.length); // outputs = 5

Multidimensional Array in Java

 

في هذه الحالة ، يتم تخزين البيانات في index قائم على الصف(row) والعمود(column).

 

بناء الجملة للإعلان عن مصفوفة متعددة الأبعاد في جافا:

// First Method
dataType[][] arrayVar;
// Second Method
dataType [][]arrayVar;
// Third Method
dataType arrayVar[][];
// Fourth Method
dataType []arrayVar[];   

مثال للتوضيح:

int[][] numbers_arr = { {1, 2, 3}, {10, 20, 30} };

 Access Elements of a Access Elements of an Array

 

للوصول إلى عناصر مصفوفة numbers_arr، حدد فهرسين: أحدهما للمصفوفة والآخر للعنصر داخل ذلك المصفوفة، كالتالى:

int[][] numbers_arr = { {1, 2, 3}, {10, 20, 30} };
int myChoose = numbers_arr[1][2];
System.out.println(myChoose); // outputs = 30

For Loop through Multidimensional Array

 

يمكننا أيضًا استخدام for loop داخل for loop أخرى للحصول على عناصر مصفوفة ثنائية الأبعاد (يجب عليك أيضًا الإشارة إلى الفهارسين):

int[][] numbers_arr = { {1, 2, 3}, {10, 20, 30} };

for(int i = 0; i < numbers_arr.length; i++){
  for(int x = 0; x < numbers_arr[i].length; x++){
    System.out.println(numbers_arr[i][x]);
  } 
}

output:

1
2
3
10
20
30

Cloning an Array in Java

 

يمكننا استنساخ مصفوفة فى Java، إذا أنشأنا استنساخ لمصفوفة أحادية البعد، فإنه ينشئ النسخة العميقة (deep copy) من مصفوفة Java، هذا يعني أنه سيتم نسخ القيمة الفعلية ولكن إذا أنشأنا استنساخ مصفوفة متعددة الأبعاد ، فإنه ينشئ النسخة السطحية (shallow copy) لصفيف Java مما يعني أنه ينسخ المراجع.

 

مثال للتوضيح:

int[] numbers_arr = {1, 2, 3};
System.out.println("Original array: ");  
for(int i:numbers_arr)  
  System.out.println(i);  
  
int cloneNums[] = numbers_arr.clone();  
System.out.println("Clone array: ");  
for(int x:cloneNums)  
  System.out.println(x);  

outputs:

Original array:
1
2
3
Clone array:
1
2
3

💡 مزايا المصفوفة:

  • تحسين الكود: المصفوفة تجعل الكود أحسن وأنظف + يمكننا استرجاع أو فرز البيانات بكفاءة.
  • الوصول العشوائي: فى المصفوفة يمكننا الحصول على أي بيانات موجودة في موضع الفهرس index.

 

💡 عيب المصفوفة:

  • حد الحجم: يمكننا تخزين الحجم الثابت للعناصر فقط في المصفوفة.

 



الإبلاغ عن خطأ

×

إذا وجد خطأ وتريد الإبلاغ عن هذا الخطأ، أو إذا كنت تريد تقديم اقتراح على شىء معين، فلا تتردد في إرسال بريد إلكتروني إلينا:

[email protected]

شكرًا لك على مساعدتك لنا!

Advertisements