栈是Vector(允许不同类型元素共存的变长数组)的一个子类。
public class Stack<E> extends Vector<E>
注意:E表示任意的数据类型
实现功能:实现了先进后出的功能。
构造方法:
Stack() 创建一个空栈
Stack<Character> zh = new Stack<>();
Stack 自定义的类
序号 | 方法描述 |
---|---|
1 | empty() 测试此堆栈是否为空 |
2 | peek()查看此堆栈顶部对象,不将其删除 |
3 | pop()删除该堆栈的顶部对象,并返回所删除的对象 |
4 | push(E item) 将一个项目推到一个栈的顶部 |
5 | search(Object o) 返回对象在堆栈中的位置,以1为基数 ,o-表示理想对象,返回值是int类型 |
为更好理解Stack、以判断括号是否有效为例
package jian;
import java.util.Stack;
public class lian_001 {
public boolean isValid(String s) {
if(s.length()%2 !=0)
return false;
Stack<Character> zh = new Stack<>();
for(char h : s.toCharArray()){
if(h == '(' || h == '[' || h == '{' ){
zh.push(h);
}else{
if(zh.empty())
return false;
// 移除堆栈顶部的对象,并作为此函数的值返回该对象。
char j = zh.pop();
if(h == ')' && j != '(') return false;
if(h == ']' && j != '[') return false;
if(h == '}' && j != '{') return false;
}
}
return zh.empty();
}
public static void main(String[] args) {
String s ="[()]";
lian_001 kuohao = new lian_001();
System.out.println(kuohao.isValid(s));
}
}