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:
// 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);     } } |
Stack: [Welcome, To, Geeks, 4, Geeks] The cloned Stack is: [Welcome, To, Geeks, 4, Geeks]
Program 2:
// 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);     } } |
Stack: [10, 15, 30, 20, 5] The cloned Stack is: [10, 15, 30, 20, 5]