Defined
a stack is a subclass of a vector that implements a standard LIFO stack. The stack defines only the default constructor, which is used to create an empty stack. The stack also defines some of its own methods, in addition to all the methods defined by the vector.
Legend
You can see the process of entering the stack (push) and the stack (POP) in the picture below. Simply put, the stack has only one entry (exit), so the advanced post-out (LIFO) is not difficult to understand.
Common methods
serial number |
|
description |
1 |
object push () |
|
2 |
object pop () |
|
3 |
object peek () |
|
4 |
boolean empty () |
test stack is empty. |
5 |
int search () |
Returns the position of the object in the stack, with a base of 1. |
Source
PackageJava.util;/*** The <code>Stack</code> class represents a last-in-first-out * (LIFO) Stack of objects. It extends class <tt>Vector</tt> with five * operations-a Vector to be treated as a stack. The usual * <tt>push</tt> and <tt>pop</tt> operations is provided, as well as a * method to <t T>peek</tt> at the top item in the stack, a method to test * for whether the stack is <tt>empty</tt> And a method to <tt>search</tt> * The stack for an item and discover. * <p> * When a stacks is first created, it contains no items. * * <p>a more complete and consistent set of LIFO stack operations are * provided by the {@linkDeque} interface and its implementations, which * should is used in preference to the This class. For example: * <pre> {@code* deque<integer> stack = new arraydeque<integer> ();} </pre> * *@authorJonathan Payne *@sinceJDK1.0*/ PublicclassStack<e>extendsVector<e> { /*** Creates an empty Stack. */ PublicStack () {}/*** Pushes an item onto the top of this stack. This has exactly * the same effect as: * <blockquote><pre> * addelement (item) </pre></bloc kquote> * *@paramitem The item to is pushed onto this stack. * @returnThe <code>item</code> argument. * @seejava.util.vector#addelement*/ Publice push (E Item) {addelement (item); returnitem; } /*** Removes the object at the top of this stack and returns that * object as the value of this function. * * @returnThe object at the top of this stack (the last item * of the <tt>Vector</tt> object). * @throwsemptystackexception If this stack is empty. */ Public synchronizede pop () {e obj; intLen =size (); Obj=Peek (); Removeelementat (Len-1); returnobj; } /*** Looks at the object at the top of the "this" stack without removing it * from the stack. * * @returnThe object at the top of this stack (the last item * of the <tt>Vector</tt> object). * @throwsemptystackexception If this stack is empty. */ Public synchronizedE Peek () {intLen =size (); if(len = = 0) Throw Newemptystackexception (); returnElementAt (len-1); } /*** Tests If this stack is empty. * * @return<code>true</code> if and only if the this stack contains * no items; <code>false</code > otherwise. */ Public Booleanempty () {returnSize () = = 0; } /*** Returns The 1-based position where an object is on this stack. * If The object <tt>o</tt> occurs as an item in this stack, this * method returns the distance from the P of the stack of the * occurrence nearest the top of the stack; The topmost item on the * stack are considered to being at distance <tt>1</tt>. The <tt>equals</tt> * method is used to compare <tt>o</tt> to the * all items in this stack. * * @paramo the desired object. * @returnThe 1-based position from the top of the stack where * the object is located; the return value <code >-1</code> * Indicates that the object isn't on the stack. */ Public synchronized intsearch (Object o) {inti =lastIndexOf (o); if(I >= 0) { returnSize ()-i; } return-1; } /**Use serialversionuid from JDK 1.0.2 for interoperability*/ Private Static Final LongSerialversionuid = 1224463164541339165L;}
View Code
The above source code from jdk1.8, if you need to download jdk1.8 official documents click here.
Reference: Http://www.runoob.com/java/java-stack-class.html https://www.cnblogs.com/leefreeman/archive/2013/05/16/3082400.html
Data structure--java Stack class