Javaالدالة arraycopy()
في جافا
تعريفها
تستخدم لنسخ محتوى مصفوفة و وضعه في مصفوفة أخرى.
عند إستدعاء هذه الدالة عليك:
- تحديد المصفوفة التي تريد نسخ قيم منها, أي الـ source.
- تحديد العنصر الذي تريد أن تبدأ عملية النسخ من عنده, أي الـ starting postition in the source.
- تحديد المصفوفة التي تريد نسخ القيم فيها, أي الـ destination.
- تحديد العنصر الذي تريد أن تبدأ عملية اللصق عنده, أي الـ starting postition in the destination.
- تحديد عدد العناصر التي نريد نسخها من المصفوفة الأولى إلى المصفوفة الثانية, أي الـ 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
فارغة.
مثال
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,