Java Deque接口 使用方法(栈、队列、双端队列)

Java Deque接口 使用方法(栈、队列、双端队列)

Deque接口可以实现 栈、队列、双端队列 的功能,虽然功能很丰富,但是使用时一定要格外小心。

接口的实现类

实现了这个接口的类有两个:ArrayDequeLinkedList
ArrayDeque 不支持 null,出现null将会抛出异常
例如:@throws NullPointerException if the specified element is null and this deque does not permit null elements
使用情景:
频繁的插入、删除操作 或 未知的初始数量:LinkedList
频繁的随机访问操作:ArrayDeque

各功能的方法

在这里插入图片描述

双端队列

  • addFirst(E):void队头添加元素。
  • addLast(E):void队尾添加元素。
  • offerFirst(E):boolean队头添加元素,并返回是否添加成功。
  • offerLast(E):boolean队尾添加元素,并返回是否添加成功。
  • removeFirst():E 删除队头元素,并返回删除的元素,如果队列为null,抛出异常。
  • removeLast():E 删除队尾元素,并返回删除的元素,如果队列为null,抛出异常。
  • pollFirst():E 删除队头元素,并返回删除的元素,如果队列为null,返回null
  • pollLast():E 删除队尾元素,并返回删除的元素,如果队列为null,返回null
  • getFirst():E 获取队头元素,如果队列为null将抛出异常。
  • getLast():E 获取队尾元素,如果队列为null将抛出异常。
  • peekFirst():E 获取队头元素,如果队列为null将返回null
  • peekLast():E 获取队尾元素,如果队列为null将返回null
  • removeFirstOccurrence(Object):boolean 删除第一次出现的指定元素,并返回是否删除成功。
  • removeFirstOccurrence(Object):boolean 删除最后一次出现的指定元素,并返回是否删除成功。

队列(先进先出)

  • add(E):boolean队尾添加元素,添加成功返回true,如果队列已满无法添加则抛出异常。
  • offer(E):boolean队尾添加元素,添加成功返回true,如果队列已满无法添加则返回false
  • remove():E 删除队头元素,并返回删除的元素,如果队列为null,抛出异常。
  • poll():E 删除队头元素,并返回删除的元素,如果队列为null,返回null
  • element():E 获取队头元素,如果队列为null将抛出异常。
  • peek():E 获取队头元素,如果队列为null将返回null

栈(后进先出)

  • peek():E 获取队头元素,如果队列为null将返回null
  • push(E):void 栈顶添加一个元素。
  • pop():E 移除栈顶元素,返回移除的元素,如果栈没有元素抛出异常。

其他

  • remove(Object):boolean 删除队列中所有指定元素,删除一个及以上返回true,否则返回false
  • contains(Object):boolean 查看队列中是否存在指定元素,存在一个及以上返回true,否则返回false
  • size():int 返回队列中元素的个数。
  • iterator():Iterator<E> 迭代器,从前向后迭代(order from first (head) to last (tail))。
  • descendingIterator():Iterator<E> 迭代器,从后向前迭代(order from last (tail) to first (head))。
  • 10
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值