Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

دوال المصفوفات

جزء من قسم Fundamentals في رحلة Java على Coddy — الدرس 61 من 73.

المصفوفات مزودة بالعديد من الدوال (الأساليب). للوصول إلى دالة، اكتب:

Arrays.methodName(arrayName, otherParameters)

إليك قائمة بالأساليب الأساسية:

  • fill(array, value) - يملأ المصفوفة بقيمة محددة
  • toString() - يحول المصفوفة إلى سلسلة نصية
  • sort(array) - يقوم بفرز المصفوفة بترتيب تصاعدي
  • equals(array1, array2) - يقارن بين مصفوفتين لتحديد ما إذا كانتا متساويتين

إليك مثال على كيفية استخدام التابع fill مع toString:

int[] numbers = new int[5];
Arrays.fill(numbers, 10);
System.out.println(Arrays.toString(numbers));

سيؤدي هذا إلى إخراج [10, 10, 10, 10, 10].

مثال على دالة sort:

int[] numbers = {5, 2, 9, 1, 5, 6};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers));

سيكون الناتج هو [1, 2, 5, 5, 6, 9].

challenge icon

التحدي

سهل

قم بإنشاء طريقة تسمى merge تستقبل مصفوفتين كوسطاء. تقوم الطريقة بدمج المصفوفتين في مصفوفة واحدة مرتبة وتعيدها.

هام: يجب أن تكون المصفوفة النهائية المدمجة مرتبة ترتيباً تصاعدياً.

على سبيل المثال، الوسطاء التالية: merge(new String[] {"1", "4", "2"}, new String[] {"2", "5", "9"}) ستعيد ["1", "2", "2", "4", "5", "9"] (لاحظ أن النتيجة مرتبة)

استخدم System.arraycopy() لنسخ العناصر من مصفوفة إلى أخرى. الصيغة هي: 

System.arraycopy(sourceArray, sourceStartPosition, destinationArray, destinationStartPosition, length)

على سبيل المثال:

// مصفوفة المصدر
String[] sourceArray = {"1", "2", "3", "4", "5"};
        
// مصفوفة الوجهة
String[] destinationArray = new String[5];
        
// نسخ العناصر من sourceArray إلى destinationArray
System.arraycopy(sourceArray, 0, destinationArray, 0, 5);

مصفوفة الوجهة بعد النسخ: 1 2 3 4 5

ورقة مرجعية

توفر فئة Arrays طرقًا مفيدة لمعالجة المصفوفات:

Arrays.methodName(arrayName, otherParameters)

طرق Arrays الأساسية:

  • fill(array, value) - يملأ المصفوفة بقيمة محددة
  • toString(array) - يحول المصفوفة إلى سلسلة نصية
  • sort(array) - يرتب المصفوفة ترتيبًا تصاعديًا
  • equals(array1, array2) - يقارن بين مصفوفتين لتحديد ما إذا كانتا متساويتين

مثال باستخدام fill و toString:

int[] numbers = new int[5];
Arrays.fill(numbers, 10);
System.out.println(Arrays.toString(numbers)); // [10, 10, 10, 10, 10]

مثال باستخدام sort:

int[] numbers = {5, 2, 9, 1, 5, 6};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers)); // [1, 2, 5, 5, 6, 9]

استخدم System.arraycopy() لنسخ العناصر بين المصفوفات:

System.arraycopy(sourceArray, sourceStartPosition, destinationArray, destinationStartPosition, length)

مثال:

String[] sourceArray = {"1", "2", "3", "4", "5"};
String[] destinationArray = new String[5];
System.arraycopy(sourceArray, 0, destinationArray, 0, 5);

جرّب بنفسك

import java.util.Arrays;
import java.util.Scanner;


public class Main {
    public static String[] merge(String[] arr1, String[] arr2) {
        // اكتب الكود هنا
        return null;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String textArr1 = scanner.nextLine();
        String textArr2 = scanner.nextLine();
        String[] arr1 = textArr1.split(",");
        String[] arr2 = textArr2.split(",");

        String[] mergedArray = merge(arr1, arr2);
        System.out.println(Arrays.toString(mergedArray));
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals