读书人

用java源代码学数据结构lt;5gt; Stack 详解

发布时间: 2013-10-29 12:07:57 作者: rapoo

用java源代码学数据结构<五>: Stack 详解

Stack类较为简单,它的主要基础是先进后出,注意Stack继承自Vector类,所以它的内部实现基本上都是直接调用Vector的方法,难度较小。

package java.util;publicclass Stack<E> extends Vector<E> {    //无参构造函数    public Stack() {    }    /**     * Pushes an item onto the top of this stack. This has exactly     * the same effect as:     * addElement(item)*/    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.     */    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.     */    public synchronized E peek() {        int     len = size();        if (len == 0)            throw new EmptyStackException();        return elementAt(len - 1);    }    /**     * Tests if this stack is empty.     *     */    public boolean empty() {        return size() == 0;    }    /**     * Returns the 1-based position where an object is on this stack.     * If the object o 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 1. The equals     * method is used to compare o to the     * items in this 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;}
一起学习,一起进步,欢迎访问我的博客:http://blog.csdn.net/wanghao109

读书人网 >编程

热点推荐