Java Program to Merge Two Arrays

Introduction

Merging two arrays involves combining all elements of both arrays into a single array. This task is common in scenarios where you want to consolidate data from different sources. This guide will walk you through writing a Java program that merges two arrays into a single array.

Problem Statement

Create a Java program that:

  • Prompts the user to enter the sizes and elements of two arrays.
  • Merges the two arrays into a single array.
  • Displays the merged array.

Example:

  • Input:
    • Array 1: [1, 3, 5]
    • Array 2: [2, 4, 6]
  • Output: "Merged array: [1, 3, 5, 2, 4, 6]"

Solution Steps

  1. Read the Sizes and Elements of the Two Arrays: Use the Scanner class to take the sizes and elements of the two arrays as input from the user.
  2. Create a Merged Array: Create a new array with a size equal to the sum of the sizes of the two arrays.
  3. Copy Elements from Both Arrays: Use System.arraycopy or a loop to copy elements from both arrays into the merged array.
  4. Display the Merged Array: Print the merged array.

Java Program

// Java Program to Merge Two Arrays
// Author: https://www.rameshfadatare.com/

import java.util.Scanner;

public class MergeArrays {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Step 1: Read the size and elements of the first array
        System.out.print("Enter the size of the first array: ");
        int size1 = scanner.nextInt();
        int[] array1 = new int[size1];
        
        System.out.println("Enter the elements of the first array:");
        for (int i = 0; i < size1; i++) {
            array1[i] = scanner.nextInt();
        }
        
        // Step 1: Read the size and elements of the second array
        System.out.print("Enter the size of the second array: ");
        int size2 = scanner.nextInt();
        int[] array2 = new int[size2];
        
        System.out.println("Enter the elements of the second array:");
        for (int i = 0; i < size2; i++) {
            array2[i] = scanner.nextInt();
        }
        
        // Step 2: Create a merged array
        int[] mergedArray = new int[size1 + size2];
        
        // Step 3: Copy elements from both arrays into the merged array
        System.arraycopy(array1, 0, mergedArray, 0, size1);
        System.arraycopy(array2, 0, mergedArray, size1, size2);
        
        // Step 4: Display the merged array
        System.out.println("Merged array:");
        for (int i = 0; i < mergedArray.length; i++) {
            System.out.print(mergedArray[i] + " ");
        }
    }
}

Explanation

Step 1: Read the Sizes and Elements of the Two Arrays

  • The Scanner class is used to read the sizes of the two arrays and their elements. The nextInt() method captures the sizes and each element of the arrays.

Step 2: Create a Merged Array

  • A new array mergedArray is created with a size equal to the sum of the sizes of the two input arrays (size1 + size2).

Step 3: Copy Elements from Both Arrays

  • The System.arraycopy() method is used to copy elements from the first array (array1) to the beginning of the mergedArray.
  • The elements of the second array (array2) are then copied starting from the index size1 in the mergedArray.

Step 4: Display the Merged Array

  • The program prints the elements of the mergedArray using a for loop.

Output Example

Example 1:

Enter the size of the first array: 3
Enter the elements of the first array:
1 3 5
Enter the size of the second array: 3
Enter the elements of the second array:
2 4 6
Merged array:
1 3 5 2 4 6 

Example 2:

Enter the size of the first array: 4
Enter the elements of the first array:
10 20 30 40
Enter the size of the second array: 2
Enter the elements of the second array:
50 60
Merged array:
10 20 30 40 50 60 

Example 3:

Enter the size of the first array: 2
Enter the elements of the first array:
7 9
Enter the size of the second array: 3
Enter the elements of the second array:
8 10 12
Merged array:
7 9 8 10 12 

Conclusion

This Java program demonstrates how to merge two arrays into a single array. The program covers essential concepts such as array manipulation, the use of System.arraycopy(), and basic input/output operations. This exercise is valuable for understanding how to handle multiple arrays and merge their contents efficiently in Java programming.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top