كيفية تهيئة مصفوفة في جافا



مجموعة Java‏

كيفية تهيئة مصفوفة في جافا

المصفوفات في جافا هي بنية البيانات الأكثر استخدامًا والتي تخزن قيمًا متعددة من نفس نوع البيانات بترتيب تسلسلي. للصفيف طول ثابت ويبدأ الفهرس من 0 إلى n-1 حيث n هو طول المصفوفة. يمكننا استخدام فئة المصفوفات في Java لتخزين أي نوع من القيم مثل String ، وعدد صحيح ، وحرف ، و بايت ، وحتى كائنات محددة من قبل المستخدم. سوف نتعلم كيفية تهيئة مصفوفة في جافا؟

يوجد أدناه تمثيل تخطيطي لمصفوفة ذات بعد واحد من الأعداد الصحيحة التي تحتوي على 11 عنصرًا.

المصفوفات في جافا

جدول المحتويات

ميزات مصفوفات جافا

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

كيف تصرح عن صفيف في جافا؟

إعلان Java Arrays

يمكن التصريح عن المصفوفة بالطرق التالية. يحتوي إعلان المصفوفة على جزأين ، الأول هو نوع بيانات العناصر التي نحتاج إلى تخزينها في مصفوفة (مثل int ، String ، إلخ) ويتبعها اسم المصفوفة. [] الأقواس تشير إلى أنها مصفوفة. عندما نعلن عن مصفوفة ، فإنه يخبر المترجم فقط أن المتغير عبارة عن مصفوفة ولا يقوم في الواقع بإنشاء مصفوفة.

نوع البيانات [] arrayName ؛ (أو)

نوع البيانات [] arrayName ؛ (أو)

نوع البيانات arrayName [] ؛ -> عادة لا نفضل استخدام هذه الطريقة على الرغم من صحتها.

مثال على إعلان المصفوفة

int[] arrNumbers;
String[] arrNames;
float[] arrValues;
boolean[] arrBoolean;
char[] arrLetters;
byte[] arrBytes;
double[] arrWeight;

كيف تصنع مصفوفة في جافا؟

مصفوفة سلسلة في جافا

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

arrname = نوع بيانات جديد [الحجم] ؛

يمكننا أيضًا إعلان وإنشاء ملف مجموعة في بيان واحد على النحو التالي. تُنشئ العبارة الأولى مصفوفة أعداد صحيحة تسمى أرقام بالحجم 5. أما الثانية فتُنشئ مصفوفة سلسلة باسم الحجم 2

int[] arrNumbers = new int[5];
String[] arrNames = new String[2];

كيف يتم تهيئة مصفوفة في جافا؟

كيفية إنشاء مثيل مصفوفة؟

يعني تهيئة الصفيف أو إنشاء مثيل تعيين قيم لمصفوفة بناءً على حجم الصفيف. يمكننا أيضًا إنشاء وتهيئة (إنشاء مثيل) مصفوفة معًا (راجع الطريقة 1 أدناه). في هذه الحالة ، يشير عدد العناصر إلى طول أو حجم المصفوفة. في الطريقة 2 ، نقوم بتعيين القيم بشكل منفصل t0 لكل عنصر. نظرًا لأن فهرس المصفوفة يبدأ بـ 0 وحجم المصفوفة هنا هو 3 ، فإن العنصر الثالث يحتل المركز الثاني وهو n-3 حيث يمثل n حجم المصفوفة.

//Method 1
int[] arrNumbers = {1,2,3};

//Method 2
int[] arrNumbers = new int[3];
arrNumbers[0] = 1;
arrNumbers[1] = 2;
arrNumbers[2] = 3;

الوصول إلى عناصر المصفوفة في جافا

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

مثال: إنشاء عناصر صفيف وتهيئتها والوصول إليها

هنا ، نقوم بإنشاء وتهيئة مصفوفة من السلاسل النصية في تعليمة واحدة والوصول إلى كل عنصر باستخدام حلقة for

public class ArrayDemo1 {

  public static void main(String[] args) {
    String[] arrMonths = {"May","June","July"};
    System.out.println("Length of array is: " + arrMonths.length);
    for(int i=0;i<arrMonths.length;i++)
    {
      System.out.println(arrMonths[i]); 
    }

  }

}
Output:
Length of array is: 3
May
June
July

مثال: طريقة أخرى لتهيئة المصفوفة والوصول إلى عناصر المصفوفة

في المثال أدناه ، نعلن أولاً وننشئ مصفوفة من الأعداد الصحيحة ثم نعيّن قيمًا لعناصر مصفوفة فردية. هنا ، نستخدم كل حلقة للوصول إلى عناصر المصفوفة.

public class ArrayDemo2 {

  public static void main(String[] args) {
    int[] numbers = new int[5];
    numbers[0] = 100;
    numbers[1] = 101;
    numbers[2] = 103;
    numbers[3] = 104;
    numbers[4] = 105;
    
    for(int i: numbers)
    {
      System.out.println(i);
    }

  }

}
Output:
100
101
103
104
105

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

يوجد نوعان من المصفوفات في Java:

  • صفيف أحادي الأبعاد - يحتوي على صف واحد وعمود واحد فقط. تنتمي جميع الأمثلة المذكورة أعلاه إلى مصفوفة ذات بعد واحد
  • مصفوفة متعددة الأبعاد - تحتوي على صفوف متعددة وأعمدة متعددة. بمعنى آخر ، إنها مصفوفة من المصفوفات حيث تحتوي جميع الصفوف على نفس عدد الأعمدة. على سبيل المثال: مصفوفة 2 * 2
  • مصفوفة خشنة - يحتوي كل صف على عدد مختلف من الأعمدة

المصفوفات متعددة الأبعاد في جافا

يمكن أن تحتوي المصفوفات متعددة الأبعاد على عدة صفوف وأعمدة. الفهرس في الأول [] يمثل الصفوف والثاني [] يمثل الأعمدة.

على سبيل المثال: int [] [] a = new int [2] [3]

هذا يعني أن المصفوفة تحتوي على صفين و 2 أعمدة. يوجد أدناه تمثيل تخطيطي لصفيف متعدد الأبعاد

المصفوفات في جافا

مثال على إنشاء مصفوفات متعددة الأبعاد من سلاسل

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

public class ArrayMulti {

  public static void main(String[] args) {
    String[][] arrNames = {{"John","Jacob"},{"Thomas","Martin"}};
    System.out.println(arrNames[0][0] + " " + arrNames[0][1]);
    System.out.println(arrNames[1][0] + " " + arrNames[1][1]);

  }

}
Output:
John Jacob 
Thomas Martin

مثال على مصفوفة ثنائية الأبعاد من الأعداد الصحيحة

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

public class ArrayMulti {

  public static void main(String[] args) {
    //Declare and create multidimensional array
    int[][] arrnum = new int[2][3];
    for(int i=0;i<2;i++) {
      for(int j=0;j<3;j++) {
        //Assign values to array elements
        arrnum[i][j] = i+1;
        System.out.print(arrnum[i][j] + " ");
      }
      System.out.println();
    }

  }

}
Output:
1 1 1 
2 2 2 

صفائف خشنة في جافا

المصفوفة الخشنة هي أيضًا مصفوفة ثنائية الأبعاد لها عدد مختلف من الأعمدة. بمعنى آخر ، يحتوي كل صف على عدد مختلف من الأعمدة. تختلف عملية تهيئة المصفوفة الخشنة عن تلك الموجودة في المصفوفة العادية ثنائية الأبعاد.

تهيئة مصفوفة خشنة

أثناء إنشاء المصفوفة ، نحدد عدد الصفوف. في هذا المثال ، تكون القيمة 2. في العبارتين التاليتين ، لكل صفيف صف ، نحدد عدد الأعمدة. هنا ، يحتوي الصف الأول على 2 أعمدة والصف الثاني به 1 أعمدة.

int[][] arrnum = new int[2][];
arrnum[0] = new int[3];
arrnum[1] = new int[4];

مثال على مصفوفة متعرجة عن طريق تعيين القيم في حلقة for

public class JaggedArray {

  public static void main(String[] args) {
    int[][] arrnum = new int[2][];
    arrnum[0] = new int[3];
    arrnum[1] = new int[4];

    int val=1;
    //Assign values
    for(int i=0;i<arrnum.length;i++) {
      for(int j=0;j<arrnum[i].length;j++) {
        arrnum[i][j] = val;
      }
    }
    
    //Print the values
    for(int i=0;i<arrnum.length;i++)
    {
      for(int j=0;j<arrnum[i].length;j++)
      {
        System.out.print(arrnum[i][j] + " ");
      }
      System.out.println();
    }
  }

}
Output:
1 1 1 
1 1 1 1 

مثال على مصفوفة خشنة من خلال تهيئة القيم أثناء إنشاء الصفيف

public class JaggedArray {

  public static void main(String[] args) {
    int[][] arr = {{4,5,6},{1,2},{7,9,8}};
    for(int i=0;i<3;i++)
    {
      for(int j=0;j<arr[i].length;j++) {
        System.out.print(arr[i][j] + " ");
      }
      System.out.println();
    }
  }
}
Output:
4 5 6 
1 2 
7 9 8 

طرق مصفوفة جافا

فيما يلي الطرق المباشرة التي تدعمها Arrays في Java

خدمة التوصيلالوصف
استنساخ باطل ()استنساخ قيم الصفيف الموجودة حيث لا يتم نسخ المراجع
قيمة منطقية (كائن 0)للتحقق مما إذا كان كائن آخر مساويًا للكائن الحالي
فئة getClass ()إرجاع اسم الفئة
سلسلة toString ()إرجاع تمثيل سلسلة من الكائن
طول int ()ترجع طول المصفوفة

استثناءات صفيف جافا

المصفوفات بتنسيق رميات جافا الاستثناء أدناه:

  • ArrayIndexOutOfBoundsException: يحدث هذا عندما تكون قيمة الفهرس التي نحددها أكبر من طول المصفوفة أو عندما تكون سالبة. يحدث هذا بشكل أساسي أثناء تعيين القيمة أو الوصول إلى عناصر المصفوفة.

انسخ مصفوفة

يمكننا نسخ عناصر من مصفوفة إلى أخرى باستخدام طريقة arraycopy من نظام الصنف.

نسخ بناء جملة الصفيف

نسخة عامة باطلة (Object src، int srcPos، Object dest، int destPos، int length) ؛

كائن مصفوفة مصدر src للنسخ منه

srcPos - موضع البدء في المصفوفة المصدر

Dest - كائن مصفوفة الوجهة المراد نسخه إليه

destPos - موضع البدء في المصفوفة الوجهة

length - عدد عناصر المصفوفة المراد نسخها

مثال على نسخ مصفوفة

في المثال أدناه ، نقوم بنسخ 4 عناصر من مصفوفة المصدر إلى مصفوفة الوجهة. ومن ثم فإن الإخراج يطبع "جافا" "

public class ArrayCopy {

  public static void main(String[] args) {
    char[] a = {'d','l','h','y','j','a','v','a','g','r','t'};
    char[] b = new char[4];
    
    System.arraycopy(a, 4, b, 0, 4);
    System.out.println(String.valueOf(b));

  }

}
Output:
java

تمرير مجموعة إلى طريقة

في Java ، يمكننا تمرير كائن مصفوفة إلى طريقة لمزيد من المعالجة أو العمليات الأخرى. يوضح المثال أدناه كيف يمكننا تمرير كائن مصفوفة من الأعداد الصحيحة إلى طريقة وإجراء إضافة جميع عناصر المصفوفة.

public class ArrayDemo3 {

  public static void main(String[] args) {
    int[] num = {5,7,3,2,8};
    add(num);

  }
  
  public static void add(int[] num) {
    int sum = 0;
    for(int i=0;i<num.length;i++) {
      sum = sum + num[i];
    }
    System.out.println("Sum of array elements is : " + sum);
  }

}
Output:
Sum of array elements is : 25

عودة مجموعة من طريقة

يمكننا أيضا إرجاع مجموعة الكائن من الطريقة إلى الطريقة الرئيسية بعد إجراء العملية المطلوبة.

public class ArrayDemo4 {

  public static void main(String[] args) {
    String[] arr = getArrayValues();
    for(String cities:arr) {
      System.out.println(cities);
    }
      

  }
  
  public static String[] getArrayValues() {
    String[] arrCities = {"Chennai","Bangalore","Delhi"};
    return arrCities;
  }

}
Output:
Chennai
Bangalore
Delhi

التلاعب بالصفيف

المصفوفات بتنسيق تنتمي Java إلى حزمة java.util. هناك العديد من العمليات التي تدعمها فئة java.util.Array كما هو مذكور أدناه:

  • يمكننا استخدام طريقة copyOfRange لفئة Array لنسخ نطاق من العناصر من مصفوفة إلى أخرى
  • ابحث في مصفوفة عن قيمة محددة بناءً على فهرس (بحث ثنائي)
  • قارن بالمصفوفات للتحقق من المساواة باستخدام طريقة equals
  • استخدم طريقة التعبئة لملء مصفوفة لوضع قيمة محددة في فهرس
  • فرز مصفوفة باستخدام طريقة الفرز

إنشاء مصفوفة باستخدام كائن معرف من قبل المستخدم

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

public class ArrayDemo5 {

  public static void main(String[] args) {
    Student[] s = new Student[2];
    s[0] = new Student(111,"Ajit");
    s[1] = new Student(112,"Biju");
  }

}
 class Student{
  public int rollno;
  public String name;
  public Student(int rno,String n) {
    rollno = rno;
    name = n;
  }
}

خلاصة

يقدم هذا البرنامج التعليمي وصفًا تفصيليًا لفئة Arrays Class في Java ، وأنواع المصفوفات في Java ، والإعلان عن المصفوفات وإنشاءها وتهيئتها باستخدام الرسوم التوضيحية المختلفة.

الرقم المرجعي