Stack类:
Stack继承了Vector,而Vector类底层使用数组存储数据,Stack对象中存储的数据也是存储在数组中,遵循数据“后进先出”的原则;
常用方法:push(E data):把数据压入栈
addElement():是父类Vector中的方法,会将压入栈的元素存放在数组末尾
peek():查看栈顶的数据,返回值为栈顶元素,底层数组中最后一个元素,但是不会删除该元素
pop():查看栈顶的数据,返回值为栈顶元素,底层数组中最后一个元素,同时把栈中的该元素删除
empty():判断栈是否为空栈
search(Object o):返回距离栈顶最近的相同元素的距离,以1为基准。如果栈中不存在这个元素,返回-1
java官方不推荐使用Stack类:Stack继承了Vector,也就是继承了所有公有方法,也就破坏了栈的特点,失去了封装的意义;使用双端队列替代Stack类,
即 Deque<Integer> stack = new ArrayDeque<>();
Queue类:
Queue接口继承自Collection接口;Queue接口分别有Deque子接口和AbstractQueue抽象类;Deque子接口分别有LinkedList类和ArrayDeque类;AbstractQueue抽象类有PriorityQueue实现类;
遵循数据“先进先出”的原则;
常用方法:
Deque是一种双端队列,即对头队尾都可以添加和删除元素,利用这一特性也可以替代Stack使用;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!