集合类Stack的用法

来源:互联网 发布:灰盒测试知乎 编辑:程序博客网 时间:2024/06/07 13:25

查看源码我们知道Stack继承于Vector,有push方法用于存值,栈的特点先进后出。pop方法用于取值并移除,peek方法只用于查看不移除。

search查看下标,empty判断是否空

publicclass Stack<E> extends Vector<E> {    /**     * Creates an empty Stack.     */    public Stack() {    }    /**     * Pushes an item onto the top of this stack. This has exactly     * the same effect as:     * <blockquote><pre>     * addElement(item)</pre></blockquote>     *     * @param   item   the item to be pushed onto this stack.     * @return  the <code>item</code> argument.     * @see     java.util.Vector#addElement     */    public E push(E item) {        addElement(item);        return item;    }    /**     * Removes the object at the top of this stack and returns that     * object as the value of this function.     *     * @return  The object at the top of this stack (the last item     *          of the <tt>Vector</tt> object).     * @throws  EmptyStackException  if this stack is empty.     */    public synchronized E pop() {        E       obj;        int     len = size();        obj = peek();        removeElementAt(len - 1);        return obj;    }    /**     * Looks at the object at the top of this stack without removing it     * from the stack.     *     * @return  the object at the top of this stack (the last item     *          of the <tt>Vector</tt> object).     * @throws  EmptyStackException  if this stack is empty.     */    public synchronized E peek() {        int     len = size();        if (len == 0)            throw new EmptyStackException();        return elementAt(len - 1);    }    /**     * Tests if this stack is empty.     *     * @return  <code>true</code> if and only if this stack contains     *          no items; <code>false</code> otherwise.     */    public boolean empty() {        return size() == 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 top of the stack of the     * occurrence nearest the top of the stack; the topmost item on the     * stack is considered to be at distance <tt>1</tt>. The <tt>equals</tt>     * method is used to compare <tt>o</tt> to the     * items in this stack.     *     * @param   o   the desired object.     * @return  the 1-based position from the top of the stack where     *          the object is located; the return value <code>-1</code>     *          indicates that the object is not on the stack.     */    public synchronized int search(Object o) {        int i = lastIndexOf(o);        if (i >= 0) {            return size() - i;        }        return -1;    }    /** use serialVersionUID from JDK 1.0.2 for interoperability */    private static final long serialVersionUID = 1224463164541339165L;}

我们来看一下结果:

//栈Stack<String> stack=new Stack<String>();stack.push("123");stack.push("qwe");stack.push("qqwe");//只是取出来看/*System.out.println("remove object is:"+stack.peek());*///取出来看并移除System.out.println("remove object is:"+stack.pop());//查看结果System.out.println("Element after remove:"+stack);

控制台:

peek()的结果:

remove object is:qqwe
Element after remove:[123, qwe, qqwe]


pop()的结果:

remove object is:qqwe
Element after remove:[123, qwe]







0 0
原创粉丝点击