定义
栈是一种只能在一端进行插入或删除操作的线性表。(先进后出表)
Java中的Stack继承Vector。
实例化
Stack stack = new Stack();
基本使用
// 判断是否为空
stack.empty();
//取栈顶值(不出栈)
stack.peek();
// 进栈
stack.push(object);
// 出栈
stack.pop();
示例
public class TestStack {
public static void main(String[] args) {
// 实例化
// Stack可以加泛型:Stack<String> stack = new Stack<>();
// 如果不加泛型,默认是Object
Stack stack = new Stack();
System.out.println(stack); // 打印结果:[]
System.out.println(stack.empty()); // 打印结果:true
try{
// 如果stack为空,stack.peek()会抛异常
stack.peek();
}catch (EmptyStackException e){
System.out.println("出现异常!!!"+e); // 打印结果:出现异常!!!java.util.EmptyStackException
}
stack.push(1);
stack.push("aaa");
stack.push("哈哈");
System.out.println(stack); // 打印结果:[1, aaa, 哈哈]
Object peek = stack.peek();
System.out.println(peek); // 打印结果:哈哈
Object peek1 = stack.peek();
System.out.println(peek1); // 打印结果:哈哈
System.out.println("peek之后的stack:" + stack); // 打印结果:peek之后的stack:[1, aaa, 哈哈]
Object pop = stack.pop();
System.out.println(pop); // 打印结果:哈哈
System.out.println("pop之后的stack:" + stack); // 打印结果:pop之后的stack:[1, aaa]
}
}
总结
本篇文章讲解了Java中栈Stack的使用,代码和笔记由于纯手打,难免会有纰漏,如果发现错误的地方,请第一时间告诉我,这将是我进步的一个很重要的环节。以后会定期更新算法题目以及各种开发知识点,如果您觉得写得不错,不妨点个关注,谢谢。