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使用;

 

posted on   刘若水  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!



点击右上角即可分享
微信分享提示