Stack 容器
Stack 容器介绍
Stack 栈容器,是 Vector 的一个子类,它实现了一个标准的后进先出(LIFO:Last In Frist Out)的栈。
Stack 特点是
后进先出。它通过 5 个操作方法对 Vector 进行扩展.
操作栈的方法

Stack 的使用
public class StackTest {
public static void main(String[] args) {
//实例化栈容器
Stack < String > stack = new Stack < > ();
//将元素添加到栈容器中
stack.push("a");
stack.push("b");
stack.push("c");
//判断栈容器是否为空
System.out.println(stack.empty());
//查看栈顶元素
System.out.println(stack.peek());
//返回元素在栈容器中的位置
System.out.println(stack.search("c"));
//获取栈容器中的元素
String p1 = stack.pop();
System.out.println(p1);
String p2 = stack.pop();
System.out.println(p2);
String p3 = stack.pop();
System.out.println(p3);
}
}
Stack 的使用案例
判断元素的对称性
String str="...{.....[....(....)...]....}..(....)..[...]...";
//匹配符号的对称性
public void symmetry() {
String str = "...{.....[....(....)...]....}..(....)..[...].(.).";
//实例化 Stack
Stack < String > stack = new Stack < > ();
//假设修正法
boolean flag = true; //假设是匹配的
//拆分字符串获取字符
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c == '{') {
stack.push("}");
}
if (c == '[') {
stack.push("]");
}
if (c == '(') {
stack.push(")");
}
//判断符号是否匹配
if (c == '}' || c == ']' || c == ')') {
if (stack.empty()) {
//修正处理
flag = false;
break;
}
String x = stack.pop();
if (x.charAt(0) != c) {
//修正处理
flag = false;
break;
}
}
}
if (!stack.empty()) {
//修正处理
flag = false;
}
System.out.println(flag);
}
作者:nylgwn
出处:https://www.cnblogs.com/nylgwn/p/17056397.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器