简介:
栈是一种先进后出的数据结构。
例如:文本编辑器的撤销功能,最后一次编辑的内容都是最先撤销的,这个功能就是利用栈来实现的。
继承关系如下:
栈的基本操作形式:
在Java程序之中使用stack来描述栈的操作,这个类的定义:
public class Stack<E>
extends Vector<E>
可以发现Stack是Vector的子类,但是Stack使用的并不是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;
}
初步操作:
import java.util.Stack; public class MAIN { public static void main(String[] args) { Stack<String> sa = new Stack<String>(); sa.push("A"); sa.push("B"); sa.push("C"); sa.push("D"); System.out.println(sa.pop()); // D System.out.println(sa.pop()); // C System.out.println(sa.pop()); // B System.out.println(sa.pop()); // A System.out.println(sa.pop()); // 无数据,报java.util.EmptyStackException异常 } }
输出结果:
此时就可以看出了,所有的数据在保存之后,取出的时候都是按照倒序方式取出,如果栈内没有数据了,就会抛出异常。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)