How to clone an ArrayList to another ArrayList in Java?

Last Updated : 19 Jul, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

The clone() method of the ArrayList class is used to clone an ArrayList to another ArrayList in Java as it returns a shallow copy of its caller ArrayList. 

Syntax:

public Object clone();

Return Value: This function returns a copy of the instance of Object.

Below program illustrate the Java.util.ArrayList.clone() method:

Example:

Java
// Java program to clone an ArrayList to another ArrayList

import java.util.ArrayList;
public class GFG {

    public static void main(String a[])
    {

        // create ArrayList
        ArrayList<String> ArrList1
            = new ArrayList<String>();

        // Insert elements in ArrayList
        ArrList1.add("Mukul");
        ArrList1.add("Rahul");
        ArrList1.add("Suraj");
        ArrList1.add("Mayank");

        // print ArrayList1
        System.out.println("Original ArrayList = "
                           + ArrList1);

        // clone ArrayList
        ArrayList ArrList2
            = (ArrayList)ArrList1.clone();

        // print ArrayList2
        System.out.println("Clone ArrayList2 = "
                           + ArrList2);
    }
}

Output
Original ArrayList = [Mukul, Rahul, Suraj, Mayank]
Clone ArrayList2 = [Mukul, Rahul, Suraj, Mayank]

Time complexity: O(N) where N is the size of ArrayList

Auxiliary Space: O(N)

Example 2:

Java
// Java code to illustrate clone() method

import java.io.*;
import java.util.*;

public class ArrayListDemo {

    public static void main(String args[])
    {

        // Creating an empty ArrayList
        ArrayList<Integer> list = new ArrayList<Integer>();

        // Use add() method
        // to add elements in the list
        list.add(16);
        list.add(32);
        list.add(48);

        // Displaying the list
        System.out.println("First ArrayList: " + list);

        // Creating another linked list and copying
        // creates a shallow copy
        ArrayList<Integer> sec_list
            = (ArrayList<Integer>)list.clone();

        sec_list.add(64);

        // Displaying the list
        System.out.println("First ArrayList: " + list);
        
        // Displaying the other linked list
        System.out.println("Second ArrayList is: "
                           + sec_list);
    }
}

Output

First ArrayList: [16, 32, 48]
First ArrayList: [16, 32, 48]
Second ArrayList is: [16, 32, 48, 64]

Time complexity: O(N) where N is the size of ArrayList

Auxiliary Space: O(N)


Next Article

Similar Reads