关于collection的个人备忘录

本文深入探讨了Java集合框架中的Queue和Deque接口,详细介绍了它们的方法和用途。Queue接口用于实现队列操作,如add、remove和peek等;Deque接口则进一步扩展了队列功能,支持双端入队和出队,可以作为栈来使用。通过LinkedList实现Queue和Deque,提供了灵活的数据结构解决方案。此外,文章还对比了Stack的特点和Deque在构建栈时的优势。
摘要由CSDN通过智能技术生成

这是collection的继承及接口关系图,如果用来初始化队列,可以用

Queue <Integer> q = new LinkedList<Integer>();

队列(queue):   queue中提供了一些队列的方法,如

*add(E e)😗*将指定元素插入此队列尾部,成功返回true。
**offer(E e)😗*将指定元素插入队列尾部,成功返回true。当队列有容量 限制时,此方法优于add,因为后者可能无法插入,而只是抛出IllegalStateException异常。
**remove()😗*获取并移除队列的头部元素,队列为空抛出异常。
**poll():**获取并移除队列的头部元素,队列为空返回null。
**element()😗*获取但是不移除队列头部元素,队列为空抛出异常。
**peek()😗*获取但是不移除队列头部元素,队列为空返回null。
**isEmpty()😗*判断队列是否为空,为空返回true。
**size()😗*获取队列元素数量.
 

Deque(双向队列):是指该队列两端的元素既能入队(offer)也能出队(poll),如果将Deque限制为只能从一端入队和出队,则可实现栈的数据结构。对于栈而言,有入栈(push)和出栈(pop),遵循先进后出原则。

stack可以使用数组来构造,也可以使用linkedlist(底层使用链表)来构造,用linkedlist来构造一个栈,可以用

Deque<TreeNode> stack = new LinkedList<TreeNode>();

deque中提供了一些方法,可供stack使用

**addLast(E e)😗*在队列尾部插入元素.
**offerLast(E e)😗*在队列尾部插入元素。
**removeFirst()😗*获取头部元素。
**pollFirst()😗*获取头部元素。
**getFirst()😗*获取头部元素。
**peekFirst()😗*获取头部元素。

//上述方法均和queue中方法一一对应。
//且queue中的方法,deque中均可用。
1
2
**getLast()😗*获取但不移除队列最后一个元素。
**offerFirst()😗*将指定元素插入队列开头。
**peekLast()😗*获取但不移除双端队列最后一个元素。
**pollLast()😗*获取并移除双端队列最后一个元素。
**pop()😗*从双端队列表示的堆栈 中弹出一个元素。
**push()😗*将一个元素推入双端队列表示的堆栈,即队列的头部。成功返回true,如果没有可用空间,抛出IllegalStateException。
**removeLast()😗*获取并移除移除双端队列最后一个元素。
**size()😗*返回双端队列元素数。
**isEmpty()😗*判断队列是否为空,为空返回true。
**remove(Object o)😗*从双端队列中移除第一次出现的指定元素。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值