前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >集合系列 List(五):Stack

集合系列 List(五):Stack

作者头像
陈树义
发布2019-08-27 11:25:07
2720
发布2019-08-27 11:25:07
举报
文章被收录于专栏:陈树义陈树义

Stack 是先进后出的栈结构,其并不直接实现具体的逻辑,而是通过继承 Vector 类,调用 Vector 类的方法实现。

代码语言:javascript
复制
public
class Stack<E> extends Vector<E>

核心方法

Stack 类代码非常简单,其有 3 个核心方法:push、pop、peek。

push

代码语言:javascript
复制
public E push(E item) {
    addElement(item);

    return item;
}

可以看到 push 方法直接调用 Vector 的 addElement 方法将元素插入数组尾部。

pop

代码语言:javascript
复制
public synchronized E pop() {
    E       obj;
    int     len = size();

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

    return obj;
}

pop 方法调用 Vector 的 removeElementAt 方法,删除了一个元素。要注意的是,其删除的是数组最后一个元素,而不是第一个元素。

peek

代码语言:javascript
复制
public synchronized E peek() {
    int     len = size();

    if (len == 0)
        throw new EmptyStackException();
    return elementAt(len - 1);
}

peek 方法直接返回列表最后一个元素。

总结

Stack 方法代码真的是非常简单,其利用 Vector 实现了一个线程安全的栈结构。总的来说,其有以下特点:

  • 底层采用 Vector 实现,因此其也是采用数组实现,也是线程安全的。
  • 先进后出的栈结构
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 核心方法
    • push
      • pop
        • peek
        • 总结
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档