队列Queue与双端队列Deque的不详细解释与用法


前言

提示:队列与双端队列清楚方法即可,明白入队和出队怎么来的就行,面试也不问,平时不常用。
在这里插入图片描述


一、队列Queue(I)接口

概述:队列通常(但并非一定)以 FIFO(先进先出) 的方式排序各个元素。不过优先级队列和 LIFO 队列(或堆栈)例外,前者根据提供的比较器或元素的自然顺序对元素进行排序,后者按 LIFO(后进先出)的方式对元素进行排序。无论使用哪种排序方式,队列的头 都是调用 remove() 或 poll() 所移除的元素。在 FIFO 队列中,所有的新元素都插入队列的末尾。其他种类的队列可能使用不同的元素放置规则。每个 Queue 实现必须指定其顺序属性。

PS:一般用LinkedList多态实现

1.底层实现:

基于数组或者链表实现

2.特点:

a.先进先出(后进后出)
b.队列也是线性结构,有顺序的,但是本身没有标号

3.常用API:

offer() - 向队列尾部追加元素
poll() - 向队列头部取出元素(出队列)
peek() - 向队列头部获取元素(队列不变)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


二、双端队列Deque(I)

Deque是Queue的子接口,是一个线性 Collection,支持在两端插入和移除元素。名称 Deque 是“double ended queue(双端队列)”的缩写,通常读为“deck”。大多数 Deque 实现对于它们能够包含的元素数没有固定限制,但此接口既支持有容量限制的双端队列,也支持没有固定大小限制的双端队列。

PS:一般用LinkedList多态实现

2.1 常用api

在这里插入图片描述
在这里插入图片描述


总结

Queue和Deque都是接口,依赖于其实现类进行调用其中的方法,常用实现类有LinkedList和ArrayDeque。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值