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

Java算法队列和栈经常用到的ArrayDeque

主要是记录一下add,push,poll这三个常用api,因为这三个就是栈和队列一念之差的关键

1.add(E e) 方法

  • 作用:将元素添加到双端队列的尾部​(等价于 addLast(E e))。
  • 行为
    • 成功时:返回 true
    • 失败时:如果队列有容量限制且已满,抛出 IllegalStateException
  • 适用场景:用作普通队列(FIFO)时,向队尾添加元素
  • java

    Deque<Integer> deque = new ArrayDeque<>();
    deque.add(1);     // 队尾添加 1 → [1]
    deque.add(2);     // 队尾添加 2 → [1, 2]

2. push(E e) 方法

  • 作用:将元素压入双端队列的头部​(等价于 addFirst(E e))。
  • 行为
    • 成功时:无返回值。
    • 失败时:如果队列有容量限制且已满,抛出 IllegalStateException
  • 适用场景:用作栈(LIFO)时,向栈顶压入元素
  • java

    Deque<Integer> deque = new ArrayDeque<>();
    deque.push(1);    // 队头压入 1 → [1]
    deque.push(2);    // 队头压入 2 → [2, 1]

3. poll() 方法

  • 作用:移除并返回双端队列头部的元素(等价于 pollFirst())。
  • 行为
    • 队列非空时:返回队首元素。
    • 队列为空时:返回 null(不会抛出异常)。
  • 适用场景:安全地移除队首元素(避免异常)
  • java

    Deque<Integer> deque = new ArrayDeque<>(Arrays.asList(1, 2, 3));
    int first = deque.poll();  // 移除并返回 1 → 剩余 [2, 3]
    int empty = deque.poll();  // 如果队列为空,返回 null

相关文章:

  • Linux文件系统与磁盘管理
  • Java并发编程(2)
  • 华为Pura先锋盛典及鸿蒙智家产品发布,空气算法重构健康家居“阔”美学
  • UI-TARS与Midscene.js自动化探索
  • 【计算机网络】网络编程
  • 使用AI一步一步实现若依(21)
  • Koupleless 是一种模块化的 Serverless 技术解决方案
  • 系统性能评测和可靠性基础——可靠性、可用性、可维护性
  • 图解神经网络和强化学习
  • 【Go】Go语言结构体笔记
  • Ubuntu Docker 安装
  • STM32八股【3】------RAM和片上FLASH
  • 高并发系统中的限流策略:滑动窗口限流与Redis实现
  • 【QT】一文学会 QT 多线程(QThread )
  • Qt开发:QComboBox的使用
  • C++学习之云盘上传文件列表下载
  • C#基础学习(三)值类型和引用类型:编程世界的“现金“ vs “银行卡“,以及string这个“渣男“的叛变行为
  • 2059-Authentication plugin ‘caching_sha2_password‘ cannot be loaded
  • 【C++初阶】从零开始模拟实现vector(含迭代器失效详细讲解)
  • 大数据运维实战之YARN任务内存泄露排查实战:从节点掉线到精准定位的完整指南
  • 烟花秀、新航线、购物节......上海邮轮文化旅游节今日开幕
  • 陈文清:推进扫黑除恶常态化走深走实,有力回应人民群众对安居乐业的新期待
  • 哈莉·贝瑞、洪常秀等出任戛纳主竞赛单元评委
  • 《中国奇谭》首部动画电影《浪浪山小妖怪》定档8月2日
  • 遭遇大规模停电,西班牙内政部宣布进入国家紧急状态
  • 俄罗斯延长非法滞留外国人限期离境时间至9月