Stack clone() method in Java with Example

The clone() method of Stack class is used to return a shallow copy of this Stack. It just creates a copy of the Stack. The copy will have a reference to a clone of the internal data array but not a reference to the original internal data array.

Syntax:

Stack.clone()

Parameters: The method does not take any parameter.

Return Value: The method returns an Object which is just the copy of the Stack.

Exception: This method throws CloneNotSupportedException if the object’s class does not support the Cloneable interface.

Below programs illustrate the Java.util.Stack.clone() method:

Program 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java code to illustrate clone()
  
import java.util.*;
  
public class StackDemo {
    public static void main(String args[])
    {
        // Creating an empty Stack
        Stack<String> stack = new Stack<String>();
  
        // Use add() method to add elements into the Stack
        stack.add("Welcome");
        stack.add("To");
        stack.add("Geeks");
        stack.add("4");
        stack.add("Geeks");
  
        // Displaying the Stack
        System.out.println("Stack: " + stack);
  
        // Creating another Stack to copy
        Object copy_Stack = stack.clone();
  
        // Displaying the copy of Stack
        System.out.println("The cloned Stack is: "
                           + copy_Stack);
    }
}

chevron_right


Output:

Stack: [Welcome, To, Geeks, 4, Geeks]
The cloned Stack is: [Welcome, To, Geeks, 4, Geeks]

Program 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java code to illustrate clone()
  
import java.util.*;
  
public class StackDemo {
    public static void main(String args[])
    {
        // Creating an empty Stack
        Stack<Integer> stack = new Stack<Integer>();
  
        // Use add() method to add elements into the Queue
        stack.add(10);
        stack.add(15);
        stack.add(30);
        stack.add(20);
        stack.add(5);
  
        // Displaying the Stack
        System.out.println("Stack: " + stack);
  
        // Creating another Stack to copy
        Object copy_Stack = (Stack)stack.clone();
  
        // Displaying the copy of Stack
        System.out.println("The cloned Stack is: "
                           + copy_Stack);
    }
}

chevron_right


Output:

Stack: [10, 15, 30, 20, 5]
The cloned Stack is: [10, 15, 30, 20, 5]


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.