0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenHarmony語言基礎(chǔ)類庫【@ohos.util.Queue (線性容器Queue)】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-27 21:20 ? 次閱讀

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

Queue的特點(diǎn)是先進(jìn)先出,在尾部增加元素,在頭部刪除元素。根據(jù)循環(huán)隊(duì)列的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)。

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

推薦使用場景: 一般符合先進(jìn)先出的場景可以使用Queue。

文檔中存在泛型的使用,涉及以下泛型標(biāo)記符:

  • T:Type,類

說明:

本模塊首批接口從API version 8開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。

導(dǎo)入模塊

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

Queue

屬性

系統(tǒng)能力: SystemCapability.Utils.Lang

名稱類型可讀可寫說明
lengthnumberQueue的元素個數(shù)。
HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

搜狗高速瀏覽器截圖20240326151344.png

constructor

constructor()

Queue的構(gòu)造函數(shù)。

系統(tǒng)能力: SystemCapability.Utils.Lang

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見[語言基礎(chǔ)類庫錯誤碼]。

錯誤碼ID錯誤信息
10200012The Queue's constructor cannot be directly invoked.

示例:

let queue = new Queue();

add

add(element: T): boolean

在隊(duì)列尾部插入元素。

系統(tǒng)能力: SystemCapability.Utils.Lang

參數(shù)

參數(shù)名類型必填說明
elementT添加進(jìn)去的元素。

返回值:

類型說明
boolean插入成功返回true,否則返回false。

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見[語言基礎(chǔ)類庫錯誤碼])。

錯誤碼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

刪除頭元素并返回該刪除元素。

系統(tǒng)能力: SystemCapability.Utils.Lang

返回值:

類型說明
T返回刪除的元素。

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見[語言基礎(chǔ)類庫錯誤碼]。

錯誤碼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

獲取隊(duì)列的頭元素。

系統(tǒng)能力: SystemCapability.Utils.Lang

返回值:

類型說明
T返回獲取的元素。

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見[語言基礎(chǔ)類庫錯誤碼]。

錯誤碼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

通過回調(diào)函數(shù)來遍歷Queue實(shí)例對象上的元素以及元素對應(yīng)的下標(biāo)。

系統(tǒng)能力: SystemCapability.Utils.Lang

參數(shù):

參數(shù)名類型必填說明
callbackFnfunction回調(diào)函數(shù)。
thisArgObjectcallbackfn被調(diào)用時用作this值。

callbackfn的參數(shù)說明:

參數(shù)名類型必填說明
valueT當(dāng)前遍歷到的元素。
indexnumber當(dāng)前遍歷到的下標(biāo)值。
QueueQueue當(dāng)前調(diào)用forEach方法的實(shí)例對象。

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見[語言基礎(chǔ)類庫錯誤碼]。

錯誤碼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);
});

鴻蒙開發(fā)指導(dǎo)文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

[Symbol.iterator]

Symbol.iterator: IterableIterator

返回一個迭代器,迭代器的每一項(xiàng)都是一個 JavaScript 對象,并返回該對象。

系統(tǒng)能力: SystemCapability.Utils.Lang

返回值:

類型說明
IterableIterator返回一個迭代器。

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見[語言基礎(chǔ)類庫錯誤碼]。

錯誤碼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;
}

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8448

    瀏覽量

    150725
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2302

    瀏覽量

    42689
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3641

    瀏覽量

    16061
收藏 人收藏

    評論

    相關(guān)推薦

    Queue Management、Queue Proxy Regions和Queue Peek Region幾個寄存器的主要區(qū)別是什么?

    Queue Management、Queue Proxy Regions和Queue Peek Region幾個寄存器的主要區(qū)別是什么? 我看到手冊上介紹的 Queue N Regis
    發(fā)表于 06-19 04:28

    pythonQueue詳解

    Py之Queue:pythonQueue的簡介、安裝、使用方法之詳細(xì)攻略
    發(fā)表于 12-28 10:09

    消息隊(duì)列Queue相關(guān)資料推薦

    消息隊(duì)列QueueAPItx_queue_createtx_queue_deletex_queue_flushtx_queue_front_sendtx_queue_receivetx_queue_send_notifyAPItx_queue_createtx_queue_deletetx_queue_flushtx_qu
    發(fā)表于 02-22 06:53

    HarmonyOS方舟開發(fā)框架容器API的介紹與使用

    通過數(shù)組實(shí)現(xiàn),包括ArrayList、Vector、List、LinkedList、Deque、Queue、Stack七種。線性容器API,充分考慮了數(shù)據(jù)訪問的速度,實(shí)現(xiàn)了運(yùn)行時(R
    發(fā)表于 03-07 11:40

    OpenHarmony 3.1 Beta版本關(guān)鍵特性解析——ArkUI容器API介紹

    及使用場景。下面,我們將為大家一一道來。1.1線性容器線性容器底層主要通過數(shù)組實(shí)現(xiàn),包括 A
    發(fā)表于 04-24 14:58

    Linux之work_queue_share教程

    Linux之work_queue_share教程,很好的Linux資料,快來學(xué)習(xí)吧
    發(fā)表于 04-15 17:49 ?13次下載

    Linux之work_queue_custom教程

    Linux之work_queue_custom教程,很好的Linux自學(xué)資料,快來學(xué)習(xí)吧。
    發(fā)表于 04-15 17:49 ?8次下載

    Linux之work_queue_delay_work教程

    Linux之work_queue_delay_work教程,很好的Linux自學(xué)資料,快來學(xué)習(xí)吧。
    發(fā)表于 04-15 17:54 ?12次下載

    ThreadX(九)------消息隊(duì)列Queue

    消息隊(duì)列QueueAPItx_queue_createtx_queue_deletex_queue_flushtx_queue_front_sendtx_queue_receivetx_queue_send_notifyAPItx_queue_createtx_queue_deletetx_queue_flushtx_qu
    發(fā)表于 12-28 19:35 ?2次下載
    ThreadX(九)------消息隊(duì)列<b class='flag-5'>Queue</b>

    OpenHarmony 3.1 Beta版本關(guān)鍵特性解析——ArkUI開發(fā)框架容器API的介紹與使用

    線性容器底層主要通過數(shù)組實(shí)現(xiàn),包括 ArrayList、Vector、List、LinkedList、Deque、Queue、Stack 七種。
    的頭像 發(fā)表于 03-17 10:48 ?866次閱讀

    隊(duì)列Queue的常用方法有哪些

    FIFO(先入先出)隊(duì)列Queue,LIFO(后入先出)隊(duì)列LifoQueue,和優(yōu)先級隊(duì)列PriorityQueue。
    的頭像 發(fā)表于 08-19 10:24 ?5613次閱讀
    隊(duì)列<b class='flag-5'>Queue</b>的常用方法有哪些

    什么是queue?

    queue 容器,又稱隊(duì)列容器,是簡單地裝飾deque容器而成為另外的一種容器
    的頭像 發(fā)表于 02-27 15:43 ?1498次閱讀

    RTOS中Queue的工作原理

    Queue即消息隊(duì)列是通過RTOS內(nèi)核提供的一種服務(wù)。它是一種線程間同步數(shù)據(jù)的安全方法。
    的頭像 發(fā)表于 07-25 15:45 ?3261次閱讀
    RTOS中<b class='flag-5'>Queue</b>的工作原理

    OpenHarmony語言基礎(chǔ)【@ohos.util.Deque (線性容器Deque)】

    Deque(double ended queue)根據(jù)循環(huán)隊(duì)列的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),符合先進(jìn)先出以及先進(jìn)后出的特點(diǎn),支持兩端的元素插入和移除。Deque會根據(jù)實(shí)際需要動態(tài)調(diào)整容量,每次進(jìn)行兩倍擴(kuò)容。
    的頭像 發(fā)表于 04-25 21:17 ?190次閱讀
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>語言</b>基礎(chǔ)<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)】

    鴻蒙語言基礎(chǔ)ohos.util.Deque 線性容器Deque

    Deque(double ended queue)根據(jù)循環(huán)隊(duì)列的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),符合先進(jìn)先出以及先進(jìn)后出的特點(diǎn),支持兩端的元素插入和移除。Deque會根據(jù)實(shí)際需要動態(tài)調(diào)整容量,每次進(jìn)行兩倍擴(kuò)容。
    的頭像 發(fā)表于 07-10 09:19 ?203次閱讀
    鴻蒙<b class='flag-5'>語言</b>基礎(chǔ)<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