栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java Queue

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java Queue

模块 java.base
软件包 java.util
Interface Queue

参数类型
E - 此队列中保留的元素类型
All Superinterfaces:
Collection , Iterable
All Known Subinterfaces:
BlockingDeque , BlockingQueue , Deque , TransferQueue
所有已知实现类:
AbstractQueue , ArrayBlockingQueue , ArrayDeque , ConcurrentLinkedDeque , ConcurrentLinkedQueue , DelayQueue , LinkedBlockingDeque , LinkedBlockingQueue , LinkedList , LinkedTransferQueue , PriorityBlockingQueue , PriorityQueue , SynchronousQueue

public interface Queue
extends Collection

设计用于在处理之前保持元素的集合。 除了基本的 Collection 操作外,队列还提供额外的 插入,提取和检查操作。 这些方法中的每一种都以 两种形式存在:一种在操作失败时抛出异常,另一种返回特殊值( null 或 false ,具体取决于操作)。 后一种形式的插入操作专门设计用于容量限制的 Queue 实现; 在大多数实现中,插入操作不会失败。

Summary of Queue methods Throws exception Returns special value Insert add(e) offer(e) Remove remove() poll() Examine element() peek()

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

如果可能, offer 方法插入元素,否则返回 false 。 这与 Collection.add 方法不同,后者只能通过抛出未经检查的异常来添加元素。 offer 方法设计用于故障是正常而非异常情况,例如,在固定容量(或“有界”)队列中。

remove() 和 poll() 方法删除并返回队列的头部。 确切地说,从队列中删除哪个元素是队列排序策略的一个功能,该策略因实现而异。 remove() 和 poll() 方法仅在队列为空时的行为不同: remove() 方法抛出异常,而 poll() 方法返回 null 。

element() 和 peek() 方法返回,但不删除,队列的头部。

Queue 接口未定义阻塞队列方法 ,这在并发编程中很常见。 这些等待元素出现或空间可用的方法在 BlockingQueue 接口中定义,该接口扩展了此接口。

Queue 实现通常不允许插入 null 元素,尽管某些实现(例如 LinkedList )不禁止插入 null 。 即使在允许它的实现中, null应将null插入 Queue ,因为null也被poll方法用作特殊返回值,以指示队列不包含任何元素。

Queue 实现通常不定义方法 equals 和 hashCode 的基于元素的版本,而是从类 Object 继承基于身份的版本,因为对于具有相同元素但具有不同排序属性的队列,基于元素的相等性并不总是很好地定义。

此接口是 Java Collections Framework 的成员。

boolean add​(E e) 如果可以在不违反容量限制的情况下立即执行此操作,则将指定的元素插入此队列,成功时返回 true ,如果当前没有空间,则抛出 IllegalStateException 。
boolean offer​(E e)	如果可以在不违反容量限制的情况下立即执行此操作,则将指定的元素插入此队列。

E	poll() 检索并删除此队列的头部,如果此队列为空,则返回 null 。
E	remove() 检索并删除此队列的头部。

E	element()	检索但不删除此队列的头部。
E	peek()	检索但不删除此队列的头部,如果此队列为空,则返回 null 。

声明方法的接口 java.util.Collection
addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray

声明方法的接口 java.lang.Iterable
forEach

方法详细信息

add
boolean add​(E e)
如果可以在不违反容量限制的情况下立即执行此操作,则将指定的元素插入此队列,成功时返回 true ,如果当前没有空间,则抛出 IllegalStateException 。
Specified by:
add在界面 Collection
参数
e - 要添加的元素
结果
true (由 Collection.add(E)指定)
异常
IllegalStateException - 如果由于容量限制,此时无法添加元素
ClassCastException - 如果指定元素的类阻止将其添加到此队列
NullPointerException - 如果指定的元素为null且此队列不允许null元素
IllegalArgumentException - 如果此元素的某些属性阻止将其添加到此队列

offer
boolean offer​(E e)
如果可以在不违反容量限制的情况下立即执行此操作,则将指定的元素插入此队列。 使用容量限制队列时,此方法通常优于add(E) ,只能通过抛出异常来插入元素。
参数
e - 要添加的元素
结果
true如果元素已添加到此队列, false
异常
ClassCastException - 如果指定元素的类阻止将其添加到此队列
NullPointerException - 如果指定的元素为null且此队列不允许null元素
IllegalArgumentException - 如果此元素的某些属性阻止将其添加到此队列

remove
E remove()
检索并删除此队列的头部。 此方法与poll()的区别仅在于,如果此队列为空,则抛出异常。
结果
这个队列的头
异常
NoSuchElementException - 如果此队列为空

poll
E poll()
检索并删除此队列的头部,如果此队列为空,则返回 null 。
结果
此队列的头部,如果此队列为空, null

element
E element()
检索但不删除此队列的头部。 此方法与peek的不同之处仅在于,如果此队列为空,则会抛出异常。
结果
这个队列的头
异常
NoSuchElementException - 如果此队列为空

peek
E peek()
检索但不移除此队列的头部,如果此队列为空,则返回 null 。
结果
此队列的头部,如果此队列为空, null

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/868158.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号