Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

Javaالدالة arraycopy() في جافا

تعريفها

تستخدم لنسخ محتوى مصفوفة و وضعه في مصفوفة أخرى.

عند إستدعاء هذه الدالة عليك:

  1. تحديد المصفوفة التي تريد نسخ قيم منها, أي الـ source.
  2. تحديد العنصر الذي تريد أن تبدأ عملية النسخ من عنده, أي الـ starting postition in the source.
  3. تحديد المصفوفة التي تريد نسخ القيم فيها, أي الـ destination.
  4. تحديد العنصر الذي تريد أن تبدأ عملية اللصق عنده, أي الـ starting postition in the destination.
  5. تحديد عدد العناصر التي نريد نسخها من المصفوفة الأولى إلى المصفوفة الثانية, أي الـ length.


بناؤها

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)


باراميترات

  • مكان الباراميتر src نمرر المصفوفة التي سيتم نسخ قيم منها.
  • مكان الباراميتر srcPos نمرر رقم أول index عنصر في المصفوفة src تبدأ عملية النسخ من عنده.
  • مكان الباراميتر dest نمرر المصفوفة التي ستتخزن فيها القيم التي تم نسخها.
  • مكان الباراميتر destPos نمرر رقم index أول عنصر في المصفوفة dest تبدأ عملية النسخ عنده.
  • مكان الباراميتر length نمرر عدد العناصر التي سيتم نسخها من المصفوفة الأولى إلى المصفوفة الثانية.


قيمة الإرجاع

لا ترجع قيمة.



أخطاء محتملة

  • IndexOutOfBoundsException: في حال وضع رقم index خارج عن حجم المصفوفة.
  • ArrayStoreException: في حال كان نوع المصفوفة src لا يمكن تخزينه في المصفوفة dest.
  • NullPointerException: في حال كانت المصفوفة التي نمررها مكان الباراميتر srcأو الباراميتر dest فارغة.


مثال

Main.java
import java.util.Arrays;

public class Main {
 
    public static void main(String[] args) {
 
        int arr1[] = { 10, 20, 30, 40, 50, 60 };
        int arr2[] = new int [6];
 
        // هنا قمنا بنسخ جميع قيم المصفوفة الأولى و وضعهم في المصفوفة الثانية
        System.arraycopy(arr1, 0, arr2, 0, 6);
 
        // هنا قمنا بعرض جميع قيم عناصر المصفوفة الثانية
        System.out.print( "arr2 = " );
        for(int i=0; i<arr2.length; i++)
        {
            System.out.print( arr2[i] + ", " );
        }
 
    }
 
}

سنحصل على النتيجة التالية عند التشغيل.

arr2 = 10, 20, 30, 40, 50, 60,