news 2026/5/16 11:04:25

59-Java Stack(堆栈)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
59-Java Stack(堆栈)

🎁 福利时间

如果你正在备战面试或者想要学习其他知识,给大家推荐一个宝藏知识库,作者整理了一些列 Java 程序员需要掌握的核心知识,有需要的自取不谢。

知识库地址:https://farerboy.com/


Java Stack(堆栈)

在本教程中,我们将借助示例学习Java Stack类及其方法。

Java集合框架具有一个名为Stack的类,该类提供堆栈数据结构的功能。

本Stack类继承Vector类。

堆栈的实现

在堆栈中,元素以后进先出的方式存储和访问。也就是说,元素被添加到堆栈的顶部并从堆栈的顶部移除。

创建堆栈

为了创建堆栈,我们必须先导入java.util.Stack包。导入包后,就可以使用Java创建堆栈。

Stack<Type> stacks = new Stack<>();

在此,Type指示堆栈的类型。例如,

//创建整数类型堆栈 Stack<Integer> stacks = new Stack<>(); //创建字符串类型堆栈 Stack<String> stacks = new Stack<>();

堆栈方法

由于Stack继承了Vector类,因此它继承了所有方法Vector。

除了这些方法之外,Stack类还包括5个与Vector区别开来的方法。

push()方法

要将元素添加到堆栈的顶部,我们使用push()方法。例如,

import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals= new Stack<>(); //将元素添加到Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); } }

输出结果

Stack: [Dog, Horse, Cat]

pop()方法

要从堆栈顶部删除元素,我们使用pop()方法。例如,

import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals= new Stack<>(); //将元素添加到 Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("初始堆栈: " + animals); //删除堆栈元素,后进先出 String element = animals.pop(); System.out.println("删除元素: " + element); } }

输出结果

初始堆栈: [Dog, Horse, Cat] 删除元素: Cat

peek()方法

该peek()方法从堆栈顶部返回一个对象。例如,

import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals= new Stack<>(); //将元素添加到Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); //从顶部访问元素,后进先出的原则 String element = animals.peek(); System.out.println("顶部元素: " + element); } }

输出结果

Stack: [Dog, Horse, Cat] 顶部元素: Cat

search()方法

要搜索堆栈中的元素,我们使用search()方法。它从堆栈的顶部返回元素的位置。例如,

import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals= new Stack<>(); //将元素添加到Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); //搜索元素 int position = animals.search("Horse"); System.out.println("元素Horse的位置: " + position); } }

输出结果

Stack: [Dog, Horse, Cat] 元素Horse的位置: 2

empty()方法

要检查堆栈是否为空,我们使用empty()方法。例如,

import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals= new Stack<>(); //将元素添加到Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); //检查堆栈是否为空 boolean result = animals.empty(); System.out.println("堆栈是空的吗? " + result); } }

输出结果

Stack: [Dog, Horse, Cat] 堆栈是空的吗? false

使用ArrayDeque 代替 Stack

本Stack类提供直接执行堆栈的数据结构。但是,建议不要使用它。而是使用ArrayDeque类(实现Deque接口)在Java中实现堆栈数据结构。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 11:03:03

在nodejs后端服务中集成taotoken实现多模型异步调用示例

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Node.js后端服务中集成Taotoken实现多模型异步调用示例 1. 项目初始化与环境准备 假设你已有一个基于Express或类似框架的Node.…

作者头像 李华
网站建设 2026/5/16 10:55:05

Office RibbonX Editor:免费开源Office界面定制终极指南

Office RibbonX Editor&#xff1a;免费开源Office界面定制终极指南 【免费下载链接】office-ribbonx-editor An overhauled fork of the original Custom UI Editor for Microsoft Office, built with WPF 项目地址: https://gitcode.com/gh_mirrors/of/office-ribbonx-edit…

作者头像 李华
网站建设 2026/5/16 10:52:59

PangoDesign Suite与Modelsim协同仿真:从库编译到实战排错全解析

1. 为什么需要PangoDesign Suite与Modelsim协同仿真 第一次接触FPGA仿真时&#xff0c;我也被各种专业术语绕晕了。直到某次项目出现时序问题&#xff0c;才发现仿真工具就像汽车的"安全气囊"——平时感觉不到存在&#xff0c;关键时刻能救命。PangoDesign Suite&…

作者头像 李华