1  import java.util.Stack;
  2  
  3  /**
  4     This program simulates an undo stack. Note that operations
  5     must be undone in the opposite order in which they are first
  6     issued.
  7  */
  8  public class StackDemo
  9  {
 10     public static void main(String[] args)
 11     {
 12        Stack<String> commands = new Stack<String>();
 13        commands.push("Insert 'Hello'");
 14        commands.push("Insert ','");
 15        commands.push("Insert ' '");
 16        commands.push("Insert 'World'");
 17        commands.push("Insert '?'");
 18        commands.push("Delete '?'");
 19        commands.push("Insert '!'");
 20  
 21        // Now we undo the last four commands
 22        for (int i = 1; i <= 4; i++)
 23        {
 24           String command = commands.pop();
 25           System.out.println("Undo " + command);
 26        }
 27     }
 28  }