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

ArrayDeque类常用方法

数据结构

ArrayDeque类是 双端队列的线性实现类。

具有以下特征:

  • ArrayDeque是采用数组方式实现的双端队列。
  • ArrayDeque的出队入队是通过头尾指针循环,利用数组实现的。
  • ArrayDeque容量不足时是会扩容的,每次扩容容量增加一倍。
  • ArrayDeque可以直接作为栈使用。当用作栈时,性能优于Stack,当用于队列时,性能优于LinkedList。
  • 无容量大小限制,容量按需增长。
  • 非线程安全队列,无同步策略,不支持多线程安全访问。
  • 具有fail-fast特性,不能存储null值,支持双向迭代器遍历。

方法列表

类型方法类型
添加元素public void addFirst(E e)在数组前面添加元素
public void addLast(E e)在数组后面添加元素
public boolean offerFirst(E e)在数组前面添加元素,并返回是否添加成功
public boolean offerLast()在数组后面添加元素,并返回是否添加成功
删除元素public E pollFirst()删除第一个元素,并返回删除元素的值,如果元素为null,将返回null
public E removeFirst()删除第一个元素,并返回删除元素的值,如果元素为null,将抛出异常
public E pollLast()删除最后一个元素,并返回删除元素的值,如果为null,将返回null
public E removeLast()删除最后一个元素,并返回删除元素的值,如果为null,将抛出异常
public boolean removeFirstOccurrence(Object o)删除第一次出现的指定元素
public boolean removeLastOccurrence(Object o)删除最后一次出现的指定元素
获取元素public E getFirst()获取第一个元素,如果没有将抛出异常
public E getLast()获取最后一个元素,如果没有将抛出异常
队列操作public boolean add(E e)在队列尾部添加一个元素
public boolean offer(E e)在队列尾部添加一个元素,并返回是否成功
public E remove()删除队列中第一个元素,并返回该元素的值,如果元素为null,将抛出异常(其实底层调用的是removeFirst()
public E peek()获取第一个元素,如果返回null
栈操作public void push(E e)栈顶添加一个元素
public E pop()移除栈顶元素,如果栈顶没有元素将抛出异常
其他public int size()获取队列中元素个数
public boolean isEmpty()判断队列是否为空
public Iterator iterator()迭代器,从前向后迭代
public Iterator descendingIterator()迭代器,从后向前迭代
public boolean contains(Object o)判断队列中是否存在该元素
public Object[] toArray()转成数组
public T[] toArray(T[] a)转成a数组常
public void clear()清空队列
public ArrayDeque clone()克隆(复制)

当成队列用时

Deque<E> queue = new ArrayDeque<>();
queue.size()
E a=queue.addLast()
E b=queue.removeFirst()

当成栈用时

Deque<E> stack = new ArrayDeque<>();
stack.size()
E a=stack.addLast()
E b=stack.removeLast()

http://www.kler.cn/a/7168.html

相关文章:

  • Visual Studio 2017 快捷键设置-批量注释和批量取消注释
  • ARM(安谋) China处理器
  • 嵌入式硬件杂谈(二)-芯片输入接入0.1uf电容的本质(退耦电容)
  • 222. 完全二叉树的节点个数【 力扣(LeetCode) 】
  • Android CALL按键同步切换通话界面上免提和听筒的图标显示
  • 【Python · PyTorch】卷积神经网络(基础概念)
  • 国产ARM+FPGA架构在“能源电力”中的典型应用详解
  • JVM 垃圾回收器
  • 【从零开始学习 UVM】6.8、UVM 激励产生 —— UVM Sequence 仲裁详解
  • 【蓝桥杯】【嵌入式组别】第四节:Systick系统滴答定时器
  • VS2022编译nanovg绘图库
  • Spring之Bean的获取过程
  • LC-1125. 最小的必要团队(状态压缩 + 0-1背包)
  • React 组件通信
  • PCL 非线性最小二乘法拟合圆柱
  • 4.5---Spring框架之Spring的自动装配(复习版本)
  • 2023年第十四届蓝桥杯JAVA B组题目
  • SpringMVC的全注解开发
  • MySQL开发02-数据库设计
  • Json交互处理_stata交互项检验
  • Huananzhi X99-AD3 Intel E5-2696v3黑苹果efi引导文件
  • Java 垃圾收集器
  • php防止表单重复提交的几种方法
  • 为什么要进行自动化测试,又有哪些需要注意的
  • rk3568 Android 添加IR遥控器
  • 交友项目【手机号登录注册功能】实现