商城首页欢迎来到中国正版软件门户

您的位置:首页 >Java中ArrayDeque的使用方法

Java中ArrayDeque的使用方法

  发布于2025-10-29 阅读(0)

扫一扫,手机访问

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,在队列和栈操作中性能更优,建议复用实例避免频繁创建销毁以提升效率。

如何在Java中使用ArrayDeque

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();:查看两端元素

注意:带 FirstLast 的方法让 ArrayDeque 真正发挥双端特性。抛出异常的方法如 removeFirst() 在队列为空时会报错,推荐使用返回 null 的 poll 版本避免异常处理。

基本上就这些。ArrayDeque 不支持 null 值插入,否则会抛出 NullPointerException。在大多数场景下,它比 LinkedList 和 ArrayList 作为队列或栈更高效。不复杂但容易忽略的小细节是:尽量复用实例,避免频繁创建销毁。

本文转载于:互联网 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注