Open In App

System.arraycopy() Method in Java with Examples

Last Updated : 24 May, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

System class in Java is a part of the lang package and comes with many different fields and methods, and System.arraycopy() is among the 28 methods. It copies the source array from a specific index value and pastes it into another array of either the same length or different lengths, it doesn’t matter and copies it till a certain length which is also up to us to decide. Given an array of a fixed length. The task is to add a new element at a specific index of the array.

--> java.lang Package 
    --> System Class
        --> arraycopy() Method

Syntax: 

public static void arraycopy(Object Source, int sourceStartIndex, 
                             Object Destination, int DestinationStartIndex, int size)

Parameters: 

  • Source: This is the array from which elements are to be copied.
  • sourceStartIndex: This is the source start position.
  • Destination: This is the array to which elements are supposed to be copied.
  • DestinationStartIndex: This is the destination start position.
  • size: The number of elements to be copied.

Illustration 

Input: arr[] = { 1, 2, 3, 4, 5 }, index = 2,  element = 6
Output: arr[] = { 1, 2, 6, 3, 4, 5 }

Input: arr[] = { 4, 5, 9, 8, 1 }, index = 3, element = 3
Output: arr[] = { 4, 5, 3)

Approach:

  1. Get the array and the index – p
  2. Create a new array of size one more than the size of the original array.
  3. Copy the elements from starting till index from the original array to the other array using System.arraycopy().
  4. At p, add the new element in the new Array which has the size of 1 more than the actual array
  5. Copy the elements from p of the original array and paste them from index p+1 in the new array till the end using System.arraycopy().
  6. Print the new array

Below is the implementation of the above approach.

Java




// Java Program to Illustrate arraycopy() Method
// of System class
 
// Importing required classes
import java.lang.System;
import java.util.Arrays;
import java.util.Scanner;
 
// Class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Original Array
        int[] A = { 1, 2, 3, 4, 5, 6 };
        System.out.print("Original Array : ");
        System.out.print(Arrays.toString(A));
 
        // size of the index
        int n = A.length;
 
        // Index at which the element be added
        int p = 2;
 
        // element that needs to be added
        int x = 10;
 
        // new Array of size +1
        // of the original array
        int[] B = new int[n + 1];
 
        // Copy the elements from starting till index
        // from original array to the other array
        System.arraycopy(A, 0, B, 0, p);
 
        // Copy the elements from p till
        // end from original array
        // and paste it into the new array on p+1 index
        System.arraycopy(A, p, B, p + 1, n - p);
 
        // putting the element x on the
        // index p of the new array
        B[p] = x;
 
        // Printing the new Array
        System.out.println();
        System.out.print("New Array : "
                         + Arrays.toString(B));
    }
}


Output

Original Array : [1, 2, 3, 4, 5, 6]
New Array : [1, 2, 10, 3, 4, 5, 6]


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads