栈(Stack)
栈的概念
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作.
进行数据插入和删除操作的一端称为栈顶,另一端称为栈底,遵守先进后出,后进先出的原则
压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶
出栈:栈的删除操作叫做出栈。出数据在栈顶
在集合框架中,Stack的继承实现关系如下:
从上图中可以看到,Stack继承了Vector,Vector和ArrayList类似,都是动态的顺序表
不同的是Vector类,是线程安全的动态数组,但是性能较差 , 现在已经不是很常用了 , 可以说已经过时了
栈的使用
方法 | 解释 |
---|---|
Stack() | 构造一个空的栈 |
E push(E e) | 将e入栈,并返回e |
E pop() | 将栈顶元素出栈并返回 |
E peek() | 获取栈顶元素 |
int size() | 获取栈中有效元素个数 |
boolean empty() | 检测栈是否为空 |
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>();//创建一个栈
stack.push(1);//添加一个元素到栈中
stack.push(2);
stack.push(3);
stack.push(4);
System.out.println("当前元素有:"+ stack.size());
System.out.println(stack);
int x = stack.pop();//取出栈顶的元素返回
System.out.println(x);
System.out.println("当前元素有:"