Queue

image

简介

Queue是一种先进先出(first-in-first-out) 的数据结构,除了基本的操作外,队列还提供了额外的插入、提取和检查操作。这些方法都提供了两份的形式,一种是抛出一个异常,一种是返回一个特殊值来判断该操作是否成功。其中,后一种操作是为了限制队列容量的判断而实现的。

java.util.Queue在java中是一个接口,该接口扩展了java.util.Collection接口。同时,LinkedList实现了Deque接口,Deque接口继承了Queue接口,所以LinkedList也可以当做Queue来操作

要点

Queue使用时,要尽量避免Collection的add()和remove()方法,而是

  • 使用offer()来加入元素,使用poll()来获取并移出元素。它们的优点是通过返回值可以判断成功与否;
  • 要使用前端节点而不移出该元素,使用element()或者peek()方法。

Queue是非线程安全的。

主要方法

1、booleab add(E e):插入指定的元素要队列中,并返回true或者false,如果队列数量超过了容量,则抛出IllegalStateException的异常。

2、boolean offer(E e):插入指定的元素到队列,并返回true或者false,如果队列数量超过了容量,不会抛出异常,只会返回false。

3、E remove():搜索并删除最顶层的队列元素,如果队列为空,则抛出一个Exception

4、E poll():搜索并删除最顶层的队列元素,如果队列为空,则返回null

5、E element():检索但不删除并返回队列中最顶层的元素,如果该队列为空,则抛出一个Exception

6、E peek(): 检索但不删除并返回最顶层的元素,如果该队列为空,则返回null

时间复杂度

索引:O(n)
搜索:O(n)
插入:O(1)
移除:O(1)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容