【数据结构】之栈(Java语言描述)

  在前面的【这篇文章】中,我简单介绍了栈这种数据结构的操作功能,并使用C语言对其进行了代码的编写。

  Java的JDK中默认为我们提供了栈这种数据结构的API—— Stack 。

  Java中的Stack类继承自 Vector 类。Vector也是Java中的一种数据结构,和ArrayList非常相似,不同的是Vector支持线程同步,也就是说,Vector可以理解为ArrayList的线程同步版。Stack继承自Vector类,自然就也是线程同步的了。

  栈中有两个最主要的方法:压栈 push() 和弹栈 pop() 。从ArrayList这个与Vector极度相似的类的角度来说,push()操作就是在表的最后添加一个元素的操作;pop()操作就是将表中的最后一个元素删除并返回的操作。两个方法都是直接沿用Vector中现有的方法,因此不加赘述,直接上源码:

public E push(E item) {
    addElement(item);

    return item;
}

public synchronized E pop() {
    E       obj;
    int     len = size();

    obj = peek();
    removeElementAt(len - 1);

    return obj;
}

 

posted on 2017-08-07 18:15  ITGungnir  阅读(281)  评论(0编辑  收藏  举报

导航