数据结构:Queue

本文详细介绍了Queue数据结构,它是先进先出(FIFO)的容器。Queue作为一个接口,继承自Collection,提供了如add、element、offer、peek、poll和remove等接口。文章还探讨了Queue的子类,包括AbstractQueue、BlockingQueue、Deque和ConcurrentLinkedQueue,以及它们的特点和使用场景。此外,还对比了阻塞队列和非阻塞队列的区别,例如ArrayBlockingQueue、SynchronousQueue、DelayQueue、LinkedBlockingQueue、LinkedBlockingDeque、PriorityBlockingQueue、ConcurrentLinkedQueue和ArrayDeque等。
摘要由CSDN通过智能技术生成

Queue列队

1、Queue是典型的先进先出容器,FIFO(first-in-first-out),通俗点说就,这个容器就像一个管道,从一端放入从另一端取出,放入的顺序和取出的顺序是相同的。下面是在百度上搜索的一张图,很形象:

804515552.png-10.1kB

2、Queue是一个接口类,继承至Collection接口,与List、Set同属于Collection的子类Interface

35e0cffeee1cc0489a45c50698f5484505d.jpg

 

3、Queue除了继承了Collection的接口外,自身拥有以下个接口:

6ced3275497110e21b29ba3a46b3ed5e588.jpg

add :往列队中添加一个元索,如果队列已满,则抛出一个IIIegaISlabEepeplian异常

element:返回队列头部的元素,如果队列为空,则抛出一个NoSuchElementException异常

offer:添加一个元素,成功返回true,如果队列已满,则返回false

peek:返回队列头部的元素,如果队列为空,则返回null

poll:移除并返回队列头部的元素,如果队列为空,则返回null

remove:移除并返回队列头部的元素,如果队列为空,则抛出一个NoSuchElementException异常

3.1、个方法区别

offer & add区别
一些队列有大小限制,如果想在容量满了的队列中加入元素,会被拒绝。

offer()方法将一个元素插入队尾,成功返回true,失败返回false,一般在queue容量有限制并且满员的情况下会插入失败;

add()方法将一个元素插入队尾,queue容量如果满了,插入将会失败,失的时候会抛出异常;

peek & element区别
element() peek() 都是在不移除元素的情况下返回列队头部元素。

在队列为空的情况下 peek() 返回 null,而element() 将抛出NoSuchElementException异常

poll & remove区别
remove() poll() 方法都移除并返回队列头部元素(head)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值