0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenHarmony语言基础类库【@ohos.util.Queue (线性容器Queue)】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-04-27 21:20 次阅读

@ohos.util.Queue (线性容器Queue)

Queue的特点是先进先出,在尾部增加元素,在头部删除元素。根据循环队列的数据结构实现。

Queue和[Deque]相比,Queue只能在一端删除一端增加,Deque可以两端增删。

推荐使用场景: 一般符合先进先出的场景可以使用Queue。

文档中存在泛型的使用,涉及以下泛型标记符:

  • T:Type,类

说明:

本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import Queue from '@ohos.util.Queue';

Queue

属性

系统能力: SystemCapability.Utils.Lang

名称类型可读可写说明
lengthnumberQueue的元素个数。
HarmonyOSOpenHarmony鸿蒙文档籽料:mau123789是v直接拿

搜狗高速浏览器截图20240326151344.png

constructor

constructor()

Queue的构造函数。

系统能力: SystemCapability.Utils.Lang

错误码:

以下错误码的详细介绍请参见[语言基础类库错误码]。

错误码ID错误信息
10200012The Queue's constructor cannot be directly invoked.

示例:

let queue = new Queue();

add

add(element: T): boolean

在队列尾部插入元素。

系统能力: SystemCapability.Utils.Lang

参数

参数名类型必填说明
elementT添加进去的元素。

返回值:

类型说明
boolean插入成功返回true,否则返回false。

错误码:

以下错误码的详细介绍请参见[语言基础类库错误码])。

错误码ID错误信息
10200011The add method cannot be bound.

示例:

let queue = new Queue();
let result = queue.add("a");
let result1 = queue.add(1);
let b = [1, 2, 3];
let result2 = queue.add(b);
let c = {name : "Dylon", age : "13"};
let result3 = queue.add(c);

pop

pop(): T

删除头元素并返回该删除元素。

系统能力: SystemCapability.Utils.Lang

返回值:

类型说明
T返回删除的元素。

错误码:

以下错误码的详细介绍请参见[语言基础类库错误码]。

错误码ID错误信息
10200011The pop method cannot be bound.

示例:

let queue = new Queue();
queue.add(2);
queue.add(4);
queue.add(5);
queue.add(2);
queue.add(4);
let result = queue.pop();

getFirst

getFirst(): T

获取队列的头元素。

系统能力: SystemCapability.Utils.Lang

返回值:

类型说明
T返回获取的元素。

错误码:

以下错误码的详细介绍请参见[语言基础类库错误码]。

错误码ID错误信息
10200011The getFirst method cannot be bound.

示例:

let queue = new Queue();
queue.add(2);
queue.add(4);
queue.add(5);
queue.add(2);
let result = queue.getFirst();

forEach

forEach(callbackFn: (value: T, index?: number, Queue?: Queue) => void, thisArg?: Object): void

通过回调函数来遍历Queue实例对象上的元素以及元素对应的下标。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
callbackFnfunction回调函数。
thisArgObjectcallbackfn被调用时用作this值。

callbackfn的参数说明:

参数名类型必填说明
valueT当前遍历到的元素。
indexnumber当前遍历到的下标值。
QueueQueue当前调用forEach方法的实例对象。

错误码:

以下错误码的详细介绍请参见[语言基础类库错误码]。

错误码ID错误信息
10200011The forEach method cannot be bound.

示例:

let queue = new Queue();
queue.add(2);
queue.add(4);
queue.add(5);
queue.add(4);
queue.forEach((value, index) = > {
    console.log("value:" + value, "index:" + index);
});

鸿蒙开发指导文档:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

[Symbol.iterator]

Symbol.iterator: IterableIterator

返回一个迭代器,迭代器的每一项都是一个 JavaScript 对象,并返回该对象。

系统能力: SystemCapability.Utils.Lang

返回值:

类型说明
IterableIterator返回一个迭代器。

错误码:

以下错误码的详细介绍请参见[语言基础类库错误码]。

错误码ID错误信息
10200011The Symbol.iterator method cannot be bound.

示例:

let queue = new Queue();
queue.add(2);
queue.add(4);
queue.add(5);
queue.add(4);

// 使用方法一:
for (let item of queue) { 
  console.log("value:" + item); 
}

// 使用方法二:
let iter = queue[Symbol.iterator]();
let temp = iter.next().value;
while(temp != undefined) {
  console.log("value:" + temp);
  temp = iter.next().value;
}

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    8504

    浏览量

    150840
  • 鸿蒙
    +关注

    关注

    57

    文章

    2312

    浏览量

    42747
  • OpenHarmony
    +关注

    关注

    25

    文章

    3661

    浏览量

    16159
收藏 人收藏

    评论

    相关推荐

    Queue Management、Queue Proxy Regions和Queue Peek Region几个寄存器的主要区别是什么?

    Queue Management、Queue Proxy Regions和Queue Peek Region几个寄存器的主要区别是什么? 我看到手册上介绍的 Queue N Regis
    发表于 06-19 04:28

    pythonQueue详解

    Py之Queue:pythonQueue的简介、安装、使用方法之详细攻略
    发表于 12-28 10:09

    消息队列Queue相关资料推荐

    消息队列QueueAPItx_queue_createtx_queue_deletex_queue_flushtx_queue_front_sendtx_queue_receivetx_queue_send_notifyAPItx_queue_createtx_queue_deletetx_queue_flushtx_qu
    发表于 02-22 06:53

    HarmonyOS方舟开发框架容器API的介绍与使用

    通过数组实现,包括ArrayList、Vector、List、LinkedList、Deque、Queue、Stack七种。线性容器API,充分考虑了数据访问的速度,实现了运行时(R
    发表于 03-07 11:40

    OpenHarmony 3.1 Beta版本关键特性解析——ArkUI容器API介绍

    及使用场景。下面,我们将为大家一一道来。1.1线性容器线性容器底层主要通过数组实现,包括 A
    发表于 04-24 14:58

    Linux之work_queue_share教程

    Linux之work_queue_share教程,很好的Linux资料,快来学习吧
    发表于 04-15 17:49 13次下载

    Linux之work_queue_custom教程

    Linux之work_queue_custom教程,很好的Linux自学资料,快来学习吧。
    发表于 04-15 17:49 8次下载

    Linux之work_queue_delay_work教程

    Linux之work_queue_delay_work教程,很好的Linux自学资料,快来学习吧。
    发表于 04-15 17:54 12次下载

    ThreadX(九)------消息队列Queue

    消息队列QueueAPItx_queue_createtx_queue_deletex_queue_flushtx_queue_front_sendtx_queue_receivetx_queue_send_notifyAPItx_queue_createtx_queue_deletetx_queue_flushtx_qu
    发表于 12-28 19:35 2次下载
    ThreadX(九)------消息队列<b class='flag-5'>Queue</b>

    OpenHarmony 3.1 Beta版本关键特性解析——ArkUI开发框架容器API的介绍与使用

    线性容器底层主要通过数组实现,包括 ArrayList、Vector、List、LinkedList、Deque、Queue、Stack 七种。线
    的头像 发表于 03-17 10:48 873次阅读

    队列Queue的常用方法有哪些

    FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列PriorityQueue。
    的头像 发表于 08-19 10:24 5638次阅读
    队列<b class='flag-5'>Queue</b>的常用方法有哪些

    什么是queue

    queue 容器,又称队列容器,是简单地装饰deque容器而成为另外的一种容器
    的头像 发表于 02-27 15:43 1531次阅读

    RTOS中Queue的工作原理

    Queue即消息队列是通过RTOS内核提供的一种服务。它是一种线程间同步数据的安全方法。
    的头像 发表于 07-25 15:45 3350次阅读
    RTOS中<b class='flag-5'>Queue</b>的工作原理

    OpenHarmony语言基础【@ohos.util.Deque (线性容器Deque)】

    Deque(double ended queue)根据循环队列的数据结构实现,符合先进先出以及先进后出的特点,支持两端的元素插入和移除。Deque会根据实际需要动态调整容量,每次进行两倍扩容。
    的头像 发表于 04-25 21:17 196次阅读
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>语言</b>基础<b class='flag-5'>类</b><b class='flag-5'>库</b>【@<b class='flag-5'>ohos.util</b>.Deque (<b class='flag-5'>线性</b><b class='flag-5'>容器</b>Deque)】

    鸿蒙语言基础ohos.util.Deque 线性容器Deque

    Deque(double ended queue)根据循环队列的数据结构实现,符合先进先出以及先进后出的特点,支持两端的元素插入和移除。Deque会根据实际需要动态调整容量,每次进行两倍扩容。
    的头像 发表于 07-10 09:19 211次阅读
    鸿蒙<b class='flag-5'>语言</b>基础<b class='flag-5'>类</b><b class='flag-5'>库</b>:<b class='flag-5'>ohos.util</b>.Deque <b class='flag-5'>线性</b><b class='flag-5'>容器</b>Deque