CodeGym /مدونة جافا /Random-AR /طريقة Java System.arraycopy()
John Squirrels
مستوى
San Francisco

طريقة Java System.arraycopy()

نشرت في المجموعة

ما هي طريقة Java System.arraycopy()؟

يقوم الأسلوب java.lang.System.arraycopy() بنسخ مصفوفة مصدر، عند موضع بداية محدد، إلى وجهة في فهرس معين.
تنتمي هذه الطريقة إلى فئة java.lang.System . يقوم بنسخ محتوى مصفوفة فرعية ذات طول محدد من مصفوفة مصدر معينة إلى مصفوفة أخرى تسمى المصفوفة الوجهة . يُشار إلى المصفوفة المصدر باسم src والمصفوفة الوجهة باسم dest . يتم تحديد عدد العناصر بواسطة وسيطة len .

إعلان طريقة Java System.arraycopy()

تعريف الطريقة لطريقة java.lang.System.arraycopy() في فئة java.lang كما يلي:
public static void arraycopy(Object src, int srcIndex, Object dest, int destIndex, int len)

حدود

فيما يلي معلمات طريقة arraycopy :
  1. src : إنها المصفوفة المصدر.

  2. srcIndex : هو فهرس البداية للمصفوفة المصدر.

  3. dest : إنها المصفوفة الوجهة.

  4. destIndex : هو فهرس البداية للمصفوفة الوجهة.

  5. len : هو عدد العناصر التي يجب نسخها من المصفوفة المصدر إلى المصفوفة الوجهة.

وظائف

يقوم أسلوب arraycopy بنسخ البيانات من src ، بدءًا من srcIndex حتى عناصر srcIndex +( len - 1)، إلى المصفوفة dest في destIndex حتى destIndex + ( len - 1).

قيمة الإرجاع

تحتوي طريقة arraycopy على نوع إرجاع فارغ مما يعني أنها لا تُرجع أي شيء.

مثال

public class Example {

    public static void main(String[] args) {

        String[] src = { "Monday","Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
        String[] dest = { "January", "February", "March", "April", "May", "June", "July", "August"};

        int srcIndex = 2;
        int destIndex = 3;
        int len = 2;

        //print number of elements that need to be copied
        //from the source to the destination array
        System.out.println("len : " + len);

        //print source index
        System.out.println("srcIndex : " + srcIndex);

        //print elements of the source array
        System.out.print("src : ");
        for (int i = 0; i < src.length; i++)
            System.out.print(src[i] + " ");
        System.out.println("");

        //print destination index
        System.out.println("destIndex : " + destIndex);

        //print elements of the destination array
        System.out.print("dest : ");
        for (int i = 0; i < dest.length; i++)
            System.out.print(dest[i] + " ");
        System.out.println("");

        // Use of arraycopy() method
        System.arraycopy(src, srcIndex, dest, destIndex, len);
        // this method copies the 'len' no of elements
        // from the src array to the dest array using the srcIndex
        // and destIndex as reference points in both the arrays


        // Print elements of destination after
        System.out.print("final destination array : ");
        for (int i = 0; i < dest.length; i++)
            System.out.print(dest[i] + " ");
    }
}

انتاج |

len : 2 srcIndex : 2 src : الاثنين الثلاثاء الأربعاء الخميس الجمعة السبت الأحد destIndex : 3 dest : يناير فبراير مارس أبريل مايو يونيو يوليو أغسطس مصفوفة الوجهة النهائية : يناير فبراير مارس الأربعاء الخميس يونيو يوليو أغسطس

مثال على تغيير المعلمات

// Example of changing parameters
         srcIndex = 4;
         destIndex = 5;
         len = 1;

انتاج |

len : 1 srcIndex : 4 src : الاثنين الثلاثاء الأربعاء الخميس الجمعة السبت الأحد destIndex : 5 dest : يناير فبراير مارس أبريل مايو يونيو يوليو أغسطس مصفوفة الوجهة النهائية : يناير فبراير مارس أبريل مايو الجمعة يوليو أغسطس

توضيح

في الكود أعلاه، قمنا بتعريف مصفوفتين src[] و dest[] . بعد ذلك، قمنا بتعريف srcIndex و destIndex لتحديد المواضع المرجعية لكلا المصفوفتين. في المثال الأول ، يقوم التابع System.arraycopy بنسخ العناصر من المصفوفة المصدر src[] ، بدءًا من الفهرس 2 وينتهي عند الفهرس 3 (لأن len = 2)، إلى المصفوفة الوجهة، بدءًا من الفهرس 3. ثم يقوم بإخراج مجموعة الوجهة النهائية بعد نسخ العناصر. في المثال الثاني ، يقوم الأسلوب System.arraycopy بنسخ عنصر واحد (لأن len = 1) من المصفوفة المصدر src[] ، بدءًا من الفهرس 4، إلى المصفوفة الوجهة، بدءًا من الفهرس 5، ويخرج أيضًا مصفوفة الوجهة النهائية بعد نسخ العناصر

خاتمة

بحلول نهاية هذا المنشور، نأمل أن تكون قد تعرفت على طريقة java.lang.System.arraycopy في Java. استمر في التدرب على التحكم بشكل أعمق في هذا المفهوم. وحتى ذلك الحين، استمر في النمو واستمر في التألق!
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION