欢迎访问CSDN博客专栏CSDN专栏 Java全栈之路,Github主页

Stack 类表示后进先出(LIFO)的对象堆栈。它通过五个操作对类 Vector 进行了扩展 ,允许将向量视为堆栈。它提供了通常的 push 和 pop 操作,以及取堆栈顶点的 peek 方法、测试堆栈是否为空的 empty 方法、在堆栈中查找项并确定到堆栈顶距离的 search 方法。

首次创建堆栈时,它不包含项。

Deque 接口及其实现提供了 LIFO 堆栈操作的更完整和更一致的 set,应该优先使用此 set,而非此类。例如:

Deque<Integer> stack = new ArrayDeque<Integer>();

Stack栈堆,后进先出型,即最后放入的元素最先出来。

例如

首先创建Stack类型的对象,分别将数据10 20 30 40 50依次进行压栈并打印,然后判断该栈是否为空并打印栈顶元素值,最后将栈中元素一个一个进行移除并打印。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

import java.util.Stack;

public class TestStack {

public static void main(String[] args){

Stack<Integer> s1 = new Stack<Integer>();

//分别将10 20 30 40 50放入集合中并打印
for(int i = 1; i <= 5; i++){
s1.push(new Integer(i*10));
System.out.println(s1); //10 20 30 40 50
}

System.out.println("-------------------------------");
//判断当前栈是否为空
System.out.println(s1.isEmpty()? "栈为空": "栈不为空"); //栈不为空
//打印栈中栈顶元素值
System.out.println("栈顶元素是:" + s1.peek()); //50

System.out.println("-------------------------------");

//移除栈中的每一个元素并打印
for(int i = 0; i < 5; i++){
System.out.println("移除的元素是:" + s1.pop());
}
}
}

构造方法摘要

Stack() // 创建一个空堆栈。

方法摘要

boolean empty()  // 测试堆栈是否为空。 

E peek() // 查看堆栈顶部的对象,但不从堆栈中移除它。 

E pop() // 移除堆栈顶部的对象,并作为此函数的值返回该对象。 

E push(E item)  // 把项压入堆栈顶部。 

int search(Object o)  //返回对象在堆栈中的位置,以 1 为基数。