home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / win95 / sieciowe / hotja32.lzh / hotjava / classsrc / java / util / stack.java < prev    next >
Text File  |  1995-08-11  |  2KB  |  85 lines

  1. /*
  2.  * @(#)Stack.java    1.8 95/01/31  
  3.  *
  4.  * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software
  7.  * and its documentation for NON-COMMERCIAL purposes and without
  8.  * fee is hereby granted provided that this copyright notice
  9.  * appears in all copies. Please refer to the file "copyright.html"
  10.  * for further important copyright and licensing information.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  13.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  14.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  15.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  16.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  17.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  18.  */
  19.  
  20. package java.util;
  21.  
  22. /**
  23.  * A FIFO stack of objects.
  24.  *
  25.  * @version     1.8, 31 Jan 1995
  26.  * @author     Jonathan Payne
  27.  */
  28. public
  29. class Stack extends Vector {
  30.     /**
  31.      * Pushes an item onto the stack.
  32.      */
  33.     public Object push(Object item) {
  34.     addElement(item);
  35.  
  36.     return item;
  37.     }
  38.  
  39.     /**
  40.      * Pops an item off the stack.
  41.      * @exception EmptyStackException The stack is empty.
  42.      */
  43.     public Object pop() {
  44.     Object    obj;
  45.     int    len = size();
  46.  
  47.     obj = peek();
  48.     removeElementAt(len - 1);
  49.  
  50.     return obj;
  51.     }
  52.  
  53.     /**
  54.      * Peeks at the top of the stack.
  55.      * @exception EmptyStackException The stack is empty.
  56.      */
  57.     public Object peek() {
  58.     int    len = size();
  59.  
  60.     if (len == 0)
  61.         throw new EmptyStackException();
  62.     return elementAt(len - 1);
  63.     }
  64.  
  65.     /**
  66.      * Returns true if the stack is empty.
  67.      */
  68.     public boolean empty() {
  69.     return size() == 0;
  70.     }
  71.  
  72.     /**
  73.      * Sees if an object is on the stack.
  74.      * @return the distance from the top, or -1 if it isn't found
  75.      */
  76.     public int search(Object o) {
  77.     int i = lastIndexOf(o);
  78.  
  79.     if (i >= 0) {
  80.         return size() - i;
  81.     }
  82.     return -1;
  83.     }
  84. }
  85.