Java中ArrayDeque的使用方法
ArrayDeque是Java中基于可变数组的高效双端队列,支持两端插入删除,适用于栈、队列场景。初始化可指定容量以优化性能,默认不设容量。作为队列使用时遵循FIFO原则,通过offer()入队、poll()出队,peek()查看头部元素;作为栈使用时遵循LIFO原则,push()压入、pop()弹出,操作均在头部进行。提供addFirst/addLast、offerFirst/offerLast等方法实现双端操作,对应removeFirst/removeLast和pollFirst/pollLast用于
ArrayDeque是Java中基于可变数组的高效双端队列,支持两端插入删除,适用于栈、队列场景。初始化可指定容量以优化性能,默认不设容量。作为队列使用时遵循FIFO原则,通过offer()入队、poll()出队,peek()查看头部元素;作为栈使用时遵循LIFO原则,push()压入、pop()弹出,操作均在头部进行。提供addFirst/addLast、offerFirst/offerLast等方法实现双端操作,对应removeFirst/removeLast和pollFirst/pollLast用于删除,getFirst/getLast查看元素。推荐使用返回null而非抛异常的poll和peek系列方法。ArrayDeque不支持null值,插入null会抛出NullPointerException。相比LinkedList和ArrayList,在队列和栈操作中性能更优,建议复用实例避免频繁创建销毁以提升效率。

ArrayDeque 是 Java 中一个高效的双端队列实现,基于可变大小的数组。它允许从两端高效地插入和删除元素,非常适合用作栈、队列或双端队列场景。
创建和初始化 ArrayDeque
使用 ArrayDeque 非常简单,不需要指定初始容量也可以,但可以传入初始容量来优化性能。
- Deque
deque = new ArrayDeque<>(); 创建一个默认容量的双端队列 - Deque
deque = new ArrayDeque<>(16); 指定初始容量为16
作为队列使用(FIFO)
ArrayDeque 可以当作普通队列使用,遵循先进先出原则。使用 add() 或 offer() 入队,remove() 或 poll() 出队。
- deque.offer("first"); 在尾部添加元素
- String element = deque.poll(); 从头部取出并移除元素
- deque.peek(); 查看头部元素但不移除
作为栈使用(LIFO)
ArrayDeque 也适合做栈,性能优于旧的 Stack 类。所有操作都在头部进行。
- deque.push("top"); 将元素压入栈顶(相当于 addFirst)
- String top = deque.pop(); 弹出栈顶元素
- deque.isEmpty() 判断栈是否为空,用于循环弹出
双端操作方法
你可以自由地在队列两端进行增删操作。
- deque.addFirst(e); / deque.offerFirst(e);:前端添加
- deque.addLast(e); / deque.offerLast(e);:后端添加(等同于 offer)
- deque.removeFirst(); / deque.pollFirst();:前端删除
- deque.removeLast(); / deque.pollLast();:后端删除
- deque.getFirst(); / deque.getLast();:查看两端元素
注意:带 First 和 Last 的方法让 ArrayDeque 真正发挥双端特性。抛出异常的方法如 removeFirst() 在队列为空时会报错,推荐使用返回 null 的 poll 版本避免异常处理。
基本上就这些。ArrayDeque 不支持 null 值插入,否则会抛出 NullPointerException。在大多数场景下,它比 LinkedList 和 ArrayList 作为队列或栈更高效。不复杂但容易忽略的小细节是:尽量复用实例,避免频繁创建销毁。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。















