السبت، 14 ديسمبر 2019

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

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

Java  Arrays

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

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

 بدلاً من التصريح عن المتغيرات الفردية ، مثل number0 و number1 و ... و number99 ، فإنك تعلن عن متغير صفيف واحد مثل الأرقام واستخدام الأرقام [0] والأرقام [1] و ... والأرقام [99] لتمثيلها  المتغيرات الفردية.

 يقدم هذا البرنامج التعليمي كيفية الإعلان عن متغيرات الصفيف وإنشاء صفائف ومعالجة الصفائف باستخدام المتغيرات المفهرسة.

الاعلان عن المصفوفات Declaring Array Variables

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

الصيغة Syntax

dataType[] arrayRefVar;   // preferred way.
or
dataType arrayRefVar[];  // works but not preferred way.
ملاحظة - نمط البيانات [] arrayRefVar هو المفضل.  يأتي النمط dataType arrayRefVar [] من لغة C / C ++ وتم اعتماده في Java لاستيعاب مبرمجي C / C ++.

 مثال
 مقتطفات الشفرة التالية هي أمثلة على بناء الجملة هذا
double[] myList;   // preferred way.
or
double myList[];   // works but not preferred way.

انشاء المصفوفات Creating Arrays

يمكنك إنشاء صفيف باستخدام عامل التشغيل الجديد باستخدام بناء الجملة التالي -

الصيغة Syntax

arrayRefVar = new dataType[arraySize];
البيان أعلاه يفعل شيئين -

 يقوم بإنشاء صفيف باستخدام نوع بيانات جديد [arraySize].

 يقوم بتعيين مرجع الصفيف المنشأ حديثاً إلى arrayRefVar متغير.

 يمكن دمج إعلان متغير صفيف وإنشاء صفيف وتعيين مرجع الصفيف إلى المتغير في عبارة واحدة ، كما هو موضح أدناه -

dataType[] arrayRefVar = new dataType[arraySize];
بدلاً من ذلك ، يمكنك إنشاء صفائف كما يلي -

dataType[] arrayRefVar = {value0, value1, ..., valuek};

يتم الوصول إلى عناصر الصفيف من خلال الفهرس.  مؤشرات الصفيف تستند إلى 0؛  أي أنها تبدأ من 0 إلى arrayRefVar.length-1.

 مثال
 العبارة التالية تعلن عن متغير صفيف ، myList ، ينشئ صفيفًا من 10 عناصر من النوع المزدوج ويعين مرجعها إلى myList -
double[] myList = new double[10];

الصورة التالية تمثل مجموعة myList.  هنا ، تحتوي myList على عشر قيم مزدوجة والمؤشرات من 0 إلى 9.
Java Array

عمليات المصفوفات Processing Arrays

عند معالجة عناصر الصفيف ، غالبًا ما نستخدم إما لحلقة حلقة أو foreach لأن جميع العناصر الموجودة في صفيف من نفس النوع وحجم الصفيف معروف.

مثال Example

فيما يلي مثال كامل يوضح كيفية إنشاء المصفوفات وتهيئتها ومعالجتها -

public class TestArray {

   public static void main(String[] args) {
      double[] myList = {1.9, 2.9, 3.4, 3.5};

      // Print all the array elements
      for (int i = 0; i < myList.length; i++) {
         System.out.println(myList[i] + " ");
      }
     
      // Summing all elements
      double total = 0;
      for (int i = 0; i < myList.length; i++) {
         total += myList[i];
      }
      System.out.println("Total is " + total);
      
      // Finding the largest element
      double max = myList[0];
      for (int i = 1; i < myList.length; i++) {
         if (myList[i] > max) max = myList[i];
      }
      System.out.println("Max is " + max);  
   }
}

المخرجات
1.9
2.9
3.4
3.5
Total is 11.7
Max is 3.5 

حلقة التكرار The foreach Loops
قدم JDK 1.5 حلقة جديدة تُعرف باسم حلقة foreach أو مُحسَّنة للحلقة ، والتي تمكنك من اجتياز الصفيف الكامل بالتسلسل دون استخدام متغير فهرس.

مثال Example

تعرض التعليمة البرمجية التالية جميع العناصر الموجودة في الصفيف myList -

public class TestArray {

   public static void main(String[] args) {
      double[] myList = {1.9, 2.9, 3.4, 3.5};

      // Print all the array elements
      for (double element: myList) {
         System.out.println(element);
      }
   }
}

هذا سوف ينتج النتيجة التالية -
المخرجات 
1.9
2.9
3.4
3.5

تمرير المصفوفات إلى الأساليب Passing Arrays to Methods

تمامًا كما يمكنك تمرير قيم الكتابة الأولية إلى الأساليب ، يمكنك أيضًا تمرير المصفوفات إلى الطرق.  على سبيل المثال ، تعرض الطريقة التالية العناصر الموجودة في صفيف int -

مثال Example

public static void printArray(int[] array) {
   for (int i = 0; i < array.length; i++) {
      System.out.print(array[i] + " ");
   }
}

يمكنك استدعاء ذلك عن طريق تمرير مجموعة.  على سبيل المثال ، تستدعي العبارة التالية طريقة printArray لعرض 3 و 1 و 2 و 6 و 4 و 2 -

Example

printArray(new int[]{3, 1, 2, 6, 4, 2});

دوال التي تعيد مصفوفات Returning an Array from a Method

قد ترجع الطريقة أيضًا صفيفًا.  على سبيل المثال ، تُرجع الطريقة التالية صفيفًا هو عكس صفيف آخر -

مثال Example

public static int[] reverse(int[] list) {
   int[] result = new int[list.length];

   for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
      result[j] = list[i];
   }
   return result;
}

فئات المصفوفة The Arrays Class

تحتوي فئة java.util.Arrays على العديد من الطرق الثابتة لفرز الصفائف والبحث عنها ومقارنة الصفائف وملء عناصر الصفيف.  هذه الطرق مثقلة لجميع الأنواع البدائية.
الرقم .الدالة والوصف 
1
public static int binarySearch(Object[] a, Object key)
يبحث في الصفيف المحدد من الكائن (Byte ، Int ، double ، إلخ) عن القيمة المحددة باستخدام خوارزمية البحث الثنائية.  يجب فرز المجموعة قبل إجراء هذه المكالمة.  يُرجع هذا فهرس مفتاح البحث ، إذا كان موجودًا في القائمة ؛  خلاف ذلك ، فإنها ترجع (- (نقطة الإدراج + 1)).

2
public static boolean equals(long[] a, long[] a2)
إرجاع صحيح إذا كانت الصفيفتان المحددتان للصفوف متساوية مع بعضها البعض.  تعتبر صفيفتان متساويتين إذا احتوى كلا الصفيفين على نفس عدد العناصر ، وكانت جميع أزواج العناصر المقابلة في الصفيفتين متساويتين.  هذا يعود صحيحا إذا كانت الصفيفان متساوية.  يمكن استخدام نفس الطريقة مع جميع أنواع البيانات البدائية الأخرى (البايت ، القصير ، الباحث ، إلخ)

3
public static void fill(int[] a, int val)
يعيّن قيمة int المحددة لكل عنصر في صفيف البتات المحدد.  يمكن استخدام نفس الطريقة مع جميع أنواع البيانات البدائية الأخرى (البايت ، القصير ، الباحث ، إلخ)

4
public static void sort(Object[] a)
لفرز مجموعة الكائنات المحددة في ترتيب تصاعدي ، وفقًا للترتيب الطبيعي لعناصرها.  يمكن استخدام نفس الطريقة مع جميع أنواع البيانات البدائية الأخرى (البايت ، القصير ، الباحث ، إلخ)











التسميات: