树叶云鸿蒙OS教程:鸿蒙OS Queue

Queue

public interface Queue<E>
extends Collection<E>

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

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

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

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

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

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

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

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

此接口是 Java 集合框架的成员。

方法总结

修饰符和类型方法描述
booleanadd(E e)如果可以在不违反容量限制的情况下立即将指定元素插入此队列,则在成功时返回 true,如果当前没有可用空间则抛出 IllegalStateException。
Eelement()检索但不删除此队列的头部。
booleanoffer(E e)如果可以在不违反容量限制的情况下立即插入,则将指定元素插入此队列。
Epeek()检索但不删除此队列的头部,如果此队列为空,则返回 null。
Epoll()检索并删除此队列的头部,如果此队列为空,则返回 null。
Eremove()检索并删除此队列的头部。
从接口 java.util.Collection 继承的方法
addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray
从接口 java.lang.Iterable 继承的方法
forEach

方法详情

add

boolean add(E e)

如果可以在不违反容量限制的情况下立即将指定元素插入此队列,则在成功时返回 true,如果当前没有可用空间则抛出 IllegalStateException。

指定者:

添加接口CollectionE

参数:

参数名称参数描述
e要添加的元素

返回:

true(由 Collection#add 指定)

Throws:

Throw名称Throw描述
IllegalStateException如果此时由于容量限制无法添加元素
ClassCastException如果指定元素的类阻止它被添加到这个队列
NullPointerException如果指定元素为空且此队列不允许空元素
IllegalArgumentException如果此元素的某些属性阻止它被添加到此队列中

offer

boolean offer(E e)

如果可以在不违反容量限制的情况下立即插入,则将指定元素插入此队列。 当使用容量受限的队列时,这种方法通常比 add(E) 更可取,add(E) 只能通过抛出异常来插入元素失败。

参数:

参数名称参数描述
e要添加的元素

返回:

如果元素已添加到此队列,则为 true,否则为 false

Throws:

Throw名称Throw描述
ClassCastException如果指定元素的类阻止它被添加到这个队列
NullPointerException如果指定元素为空且此队列不允许空元素
IllegalArgumentException如果此元素的某些属性阻止它被添加到此队列中

remove

E remove()

检索并删除此队列的头部。 此方法与 poll 的不同之处仅在于如果此队列为空,它将引发异常。

返回:

这个队列的头

Throws:

Throw名称Throw描述
NoSuchElementException如果此队列为空

poll

E poll()

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

返回:

此队列的头部,如果此队列为空,则返回 null

element

E element()

检索但不删除此队列的头部。 此方法与 peek 的不同之处仅在于如果此队列为空,它将引发异常。

返回:

这个队列的头

Throws:

Throw名称Throw描述
NoSuchElementException如果此队列为空

peek

E peek()

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

返回:

此队列的头部,如果此队列为空,则返回 null

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/193865.html<

(0)
运维的头像运维
上一篇2025-04-02 06:15
下一篇 2025-04-02 06:17

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注