System.arraycopy() Method in Java with Examples
Last Updated :
24 May, 2022
Improve
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:
- Get the array and the index - p
- Create a new array of size one more than the size of the original array.
- Copy the elements from starting till index from the original array to the other array using System.arraycopy().
- At p, add the new element in the new Array which has the size of 1 more than the actual array
- 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().
- Print the new array
Below is the implementation of the above approach.
// 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]