当前位置: 首页 > news >正文

【Java】Stack(栈) Queue(单向队列) Deque(双向队列)

Stack (栈)

Stack 是一个先进后出的栈,可以将其理解为一个只开了一个口子的管子,放进去的东西只能从这一个口进出。所以先放进去的元素在取出的时候只能到最后才能取出来。
Stack具备一下几个方法:

boolean empty()

判断stack对象是否为空。

Object push(Object element)入栈

将元素压入栈里,就像将元素塞入单口管子,也可以想象成将子弹压入弹夹。

Object peek()

查看最后入栈的元素,像是你拿起单口管子向里看,看到的就是最后塞入的那个元素。

Object pop() 出栈

将最后入栈的元素取出来

int search(Object target)

查找元素在栈中的位置,这个位置是以最后入栈的元素来算的,最后入栈的元素位置为1。其前面的元素的位置是2。

Queue 单向队列

Queue 是一个先进先出的队列,可以将其想象成一个两端开口,单向的管道。管道中的元素只能沿着同一个方向运动不能掉头,所以先出来的元素只能是先进去的元素。

入队 offer(Object element),add(Object element)

这两个方法都是入队的操作,区别在于超出队列最大容量的时候offer会抛出异常,add则是返回false;

获取队头元素 element(),peek()

没啥说的,就是获取最先入队的元素,区别则是队列无元素的时候element()会抛出异常,而peek()则是返回null

出队 remove(),poll()

将最先入队的元素弹出来,区别是队列无元素的时候,remove()会报错,poll()则是返回false

Deque 双向队列

Deque就像是一个两端开口,双向的通道。元素可以从头部插入也可以从尾部插入,也可以从头尾取出元素。可以说是stack和queue的综合加强版。而且现在stack是算废弃了,建议使用Deque代替。就是Deque的方法有点多,一段时间不用就老是搞混。

Deque替代Stack方法
功能DequeStack
入栈push,offerLast,addLastpush
出栈pop,removeLast,pollLastpop
查看栈顶部元素peekLastpeek
Deque与Queue等效方法
功能DequeQueue
入队add,offerFirst,addFirstadd,offer
出队poll,removeFirst,pollFirstremove,poll
查看队首元素peek,element,peekFirstpeek

ps : 老是搞混这三个的方法,所以记录一下。若有错误,欢迎指出。

http://www.lryc.cn/news/8376.html

相关文章:

  • 自定义spring拦截器
  • 今天正式上线!虹科汽车免拆诊断云展厅:感受精准修车魅力,畅享汽修领先技术
  • 4.数据类型-字符串【Python】
  • 搞量化先搞数(上):A股股票列表免费抓取实战
  • SpringCloud-负载均衡Ribbon
  • Linux入门篇(二)
  • 第四部分:特殊用途的句子——第三章:虚拟
  • Java中如何获取泛型类型信息
  • 【云原生】centos7搭建安装k8s集群 v1.25版本详细教程实战
  • c语言指针
  • 5.33 综合案例2.0 -ESP32拍照上传阿里云OSS
  • java无重复字符的最长子串
  • 测试用例设计工作中的应用
  • leetcode 困难 —— 数字 1 的个数(简单逻辑题)
  • 关于JSON
  • Apifox-接口调用、自动化测试工具
  • Vue一个项目兼容每个省份的个性化需求
  • npm install报错 npm ERR! 的解决办法
  • echarts修改饼图,环形图的圆环宽度,大小
  • 小白系列Vite-Vue3-TypeScript:010-封装svg
  • 卷严重、难度高、激励少,如何适应空投市场新变化
  • 基于Java与JSP的文件上传和下载
  • Gromacs中的g_mmpbsa计算带电底物与蛋白的结合能不准确
  • 【mmrotate】旋转目标检测之训练DOTA数据集
  • 图基本概念
  • 机器学习基础
  • FreeRTOS-Tickless低功耗模式 | FreeRTOS十四
  • 实现了统一消息中心的微服务基础框架 JVS,快点赞收藏
  • VMware 安装 OpenWrt 旁路由并配置 PassWall
  • R语言GD包地理探测器分析时报错、得不到结果等情况的解决方案