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]