鴻蒙語言基礎類庫:【@ohos.util.TreeSet (非線性容器TreeSet)】

非線性容器TreeSet

說明: 本模塊首批接口從API version 8開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。開發前請熟悉鴻蒙開發指導文檔gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md點擊或者復制轉到。

TreeSet基于[TreeMap]實現,在TreeSet中,只對value對象進行處理。TreeSet可用于存儲一系列值的集合,元素中value唯一且有序。

TreeSet和[HashSet]相比,HashSet中的數據無序存放,而TreeSet是有序存放。它們集合中的元素都不允許重復,但HashSet允許放入null值,TreeSet不允許。

推薦使用場景: 一般需要存儲有序集合的場景,可以使用TreeSet。

導入模塊

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

TreeSet

屬性

系統能力: SystemCapability.Utils.Lang

名稱參數類型可讀可寫說明
lengthnumberTreeSet的元素個數。

constructor

constructor(comparator?:(firstValue: T, secondValue: T) => boolean)

TreeSet的構造函數。

系統能力: SystemCapability.Utils.Lang

參數:

參數名類型必填說明
comparatorfunction用戶自定義的比較函數。

示例:

let treeSet = new TreeSet();

isEmpty

isEmpty(): boolean

判斷該容器是否為空。

系統能力: SystemCapability.Utils.Lang

返回值:

類型說明
boolean為空返回true,不為空返回false。

示例:

const treeSet = new TreeSet();
let result = treeSet.isEmpty();

has

has(value: T): boolean

判斷此容器中是否含有該指定元素。

系統能力: SystemCapability.Utils.Lang

參數:

參數名類型必填說明
valueT指定元素。

返回值:

類型說明
boolean包含指定元素返回true,否則返回false。

示例:

let treeSet = new TreeSet();
treeSet.has(123);
treeSet.add(123);
let result1 = treeSet.has(123);

getFirstValue

getFirstValue(): T

獲取容器中排序第一的數據。

系統能力: SystemCapability.Utils.Lang

返回值:

類型說明
T返回排序第一的數據。

示例:

let treeSet = new TreeSet();
treeSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
treeSet.add("sdfs");
let result = treeSet.getFirstValue();

getLastValue

getLastValue(): T

獲取容器中排序最后的數據。

系統能力: SystemCapability.Utils.Lang

返回值:

類型說明
T返回排序最后的數據。

示例:

let treeSet = new TreeSet();
treeSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
treeSet.add("sdfs");
let result = treeSet.getLastValue();

add

add(value: T): boolean

向容器中添加一組數據。

系統能力: SystemCapability.Utils.Lang

參數:

參數名類型必填說明
valueT添加的成員數據。

返回值:

類型說明
boolean成功添加新數據至容器返回true,否則返回false。

示例:

let treeSet = new TreeSet();
let result = treeSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");

remove

remove(value: T): boolean

刪除指定的元素。

系統能力: SystemCapability.Utils.Lang

參數:

參數名類型必填說明
valueT指定的元素。

返回值:

類型說明
boolean成功刪除元素返回true,否則返回false。

示例:

let treeSet = new TreeSet();
treeSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
treeSet.add("sdfs");
let result = treeSet.remove("sdfs");

getLowerValue

getLowerValue(key: T): T

獲取容器中比傳入元素排序靠前一位的元素。

系統能力: SystemCapability.Utils.Lang

參數:

參數名類型必填說明
keyT對比的元素值。

返回值:

類型說明
T返回排序中對比元素前一位的數據。

示例:

let treeSet = new TreeSet();
treeSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
treeSet.add("sdfs");
treeSet.add("zdfgsd");
let result = treeSet.getLowerValue("sdfs");

getHigherValue

getHigherValue(key: T): T

獲取容器中比傳入元素排序靠后一位的元素。

系統能力: SystemCapability.Utils.Lang

參數:

參數名類型必填說明
keyT對比的元素。

返回值:

類型說明
T返回排序中傳入元素后一位的數據。

示例:

let treeSet = new TreeSet();
treeSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
treeSet.add("sdfs");
treeSet.add("zdfgsd");
let result = treeSet.getHigherValue("sdfs");

popFirst

popFirst(): T

刪除容器中排序最前的數據。

系統能力: SystemCapability.Utils.Lang

返回值:

類型說明
T返回刪除的數據。

返回值:

let treeSet = new TreeSet();
treeSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
treeSet.add("sdfs");
let result = treeSet.popFirst();

popLast

popLast(): T

刪除容器中排序最后的數據。

系統能力: SystemCapability.Utils.Lang

返回值:

類型說明
T返回刪除的數據。

返回值:

let treeSet = new TreeSet();
treeSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
treeSet.add("sdfs");
let result = treeSet.popLast();

clear

clear(): void

清除容器中的所有元素,并把length置為0。

系統能力: SystemCapability.Utils.Lang

示例:

let treeSet = new TreeSet();
treeSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
treeSet.add("sdfs");
treeSet.clear();

values

values(): IterableIterator

返回包含此映射中包含的鍵值的新迭代器對象。

系統能力: SystemCapability.Utils.Lang

返回值:

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

示例:

let treeSet = new TreeSet();
treeSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
treeSet.add("sdfs");
let iter = treeSet.values();
let temp = iter.next().value;
while(temp != undefined) {console.log("value:" + temp);temp = iter.next().value;
} 

forEach

forEach(callbackfn: (value?: T, key?: T, set?: TreeSet) => void, thisArg?: Object): void

通過回調函數來遍歷實例對象上的元素以及元素對應的下標。

系統能力: SystemCapability.Utils.Lang

參數:

參數名類型必填說明
callbackfnfunction回調函數。
thisArgObjectcallbackfn被調用時用作this值。

callbackfn的參數說明:

參數名類型必填說明
valueT當前遍歷到的元素。
keyT當前遍歷到的元素(和value相同)。
setTreeSet當前調用forEach方法的實例對象。

示例:

let treeSet = new TreeSet();
treeSet.add("sdfs");
treeSet.add("dfsghsf");
treeSet.forEach((value, key) => {console.log("value:" + value, key)
});

entries

entries(): IterableIterator<[T, T]>

返回包含此映射中包含的鍵值對的新迭代器對象。

系統能力: SystemCapability.Utils.Lang

返回值:

類型 HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿說明
IterableIterator<[T, T]>返回一個迭代器。

在這里插入圖片描述

示例:

let treeSet = new TreeSet();
treeSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
treeSet.add("sdfs");
let iter = treeSet.entries();
let temp = iter.next().value;
while(temp != undefined) {console.log("key:" + temp[0]);console.log("value:" + temp[1]);temp = iter.next().value;
}

[Symbol.iterator]

Symbol.iterator: IterableIterator

返回一個迭代器,迭代器的每一項都是一個 JavaScript 對象,并返回該對象。

系統能力: SystemCapability.Utils.Lang

返回值:

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

示例:

let treeSet = new TreeSet();
treeSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
treeSet.add("sdfs");// 使用方法一:
for (let item of treeSet) { console.log("value:" + item);
}// 使用方法二:
let iter = treeSet[Symbol.iterator]();
let temp = iter.next().value;
while(temp != undefined) {console.log("value:" + temp);temp = iter.next().value;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/44531.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/44531.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/44531.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HDFS 塊重構和RedundancyMonitor詳解

文章目錄 1. 前言2 故障塊的重構(Reconstruct)2.1 故障塊的狀態定義和各個狀態的統計信息2.2 故障文件塊的查找收集2.5.2.1 misReplica的檢測2.5.2.2 延遲隊列(postponedMisreplicatedBlocks)的構造和實現postponedMisreplicatedBlocks中Block的添加postponedMisreplicatedBloc…

綠盟培訓入侵排查

一、webshell 排查 1、文件特征 2、windows 3、linux 4、內存馬 二、web 日志排查 1、日志排查 2、中間件報錯排查 三、服務器失陷處置

Element-UI Select組件使用value-key屬性,讓綁定值可以為一個對象

當我們使用 Elemet UI 的 Select 組件的綁定值是一個對象 :value="item" 如: <el-form-item label="選擇應用" prop="appInfo"><el-select v-model=

每日一題cf

文章目錄 Swap and Reverse題意&#xff1a;題解&#xff1a;代碼&#xff1a; Swap and Reverse 題意&#xff1a; 給定一個長度為n的正整數數組&#xff0c;給定k。可以進行任意次一下操作 選定 i i i&#xff0c;交換 a i a_{i} ai?和 a i 2 a_{i2} ai2?的值選定 i i …

Windows環境人大金倉數據庫命令常規操作

Windows環境人大金倉數據庫命令常規操作 下文將介紹人大金倉數據庫常見命令操作&#xff0c;包括具體使用命令如創建數據庫、創建用戶、授權等相關操作。 1、打開命令提示符窗口 找到數據庫安裝目錄進入server/bin目錄&#xff0c;輸入cmd,打開命令提示符窗口&#xff0c;如…

Java getSuperclass和getGenericSuperclass

1.官方API對這兩個方法的介紹 getSuperclass : 返回表示此 Class 所表示的實體&#xff08;類、接口、基本類型或 void&#xff09;的超類的 Class。如果此 Class 表示 Object 類、一個接口、一個基本類型或 void&#xff0c;則返回 null。如果此對象表示一個數組類&#xff…

探秘微信廣告設計組:一位產品體驗設計師的日常與成長

目錄 我的工位&#xff1a;靈感與回憶的匯聚地 我們的設計&#xff1a;用心定格每一個瞬間 設計的多樣性&#xff1a;從社交廣告到過年IP形象 咖啡與工作的日常&#xff1a;從抵觸到入坑 廣告設計&#xff1a;我選擇&#xff0c;我熱愛 實習生的培養&#xff1a;實踐與思…

Qt(四)事件

文章目錄 一、概念二、&#xff08;一&#xff09;&#xff08;二&#xff09;QImage類&#xff08;三&#xff09;鼠標事件和鍵盤事件1. 鼠標事件2. 鍵盤事件 &#xff08;四&#xff09;定時器事件1. 采用定時器事件2. QTimer定時器類 三、 一、概念 事件是由窗口系統或者自…

充電樁項目

1. 多對一&#xff08;多個監測設備檢測&#xff0c;數據發送給一個服務器&#xff09; 2. 原理 充電樁溫度變化引起PT100阻值變換&#xff08;測溫電流衰減微弱&#xff0c;幾乎恒定&#xff0c;電壓隨之變化)&#xff0c;經過測溫模塊轉化成電壓的變化&#xff08;內部是電流…

小程序內容管理系統設計

設計一個小程序內容管理系統&#xff08;CMS&#xff09;時&#xff0c;需要考慮以下幾個關鍵方面來確保其功能完善、用戶友好且高效&#xff1a; 1. 需求分析 目標用戶&#xff1a;明確你的目標用戶群體&#xff0c;比如企業、媒體、個人博主等&#xff0c;這將決定系統的功…

zynq啟動和程序固化流程

普通FPGA啟動 FPGA的啟動方式主要包含主動模式、被動模式和JTAG模式。 主動模式&#xff08;AS模式&#xff09; 當FPGA器件上電時&#xff0c;它作為控制器從配置器件EPCS中主動發出讀取數據信號&#xff0c;并將EPCS的數據讀入到自身中&#xff0c;實現對FPGA的編程。這種…

Mac的系統數據怎么刪除 cleanmymac會亂刪東西嗎 cleanmymac有用嗎

作為一款專業級的蘋果電腦清理軟件&#xff0c;CleanMyMac可以精準識別系統垃圾&#xff0c;有效防止Mac系統數據被誤刪。軟件可以深入系統底層&#xff0c;清理無用的系統數據&#xff0c;優化蘋果電腦設置&#xff0c;提升Mac系統性能。有關Mac的系統數據可以刪嗎&#xff0c…

javascript如何定義數組和從數組取值,獲取數組長度

javascript如何定義數組 javascript定義數組的格式是 var 數組名[數組元素]或者 let 數組名[數組元素] javascript數組和python的列表很相似&#xff0c;真要懶的話&#xff0c;不用定義數據類型&#xff0c;不像c語言和java那樣限制數據類型。 定義數組示例代碼 <bod…

Unity Addressable魔改

新增回調 在使用過程中&#xff0c;輸出之后還需要手動拷貝到服務器上會麻煩&#xff0c;一旦未拷貝編輯器還會因為加載&#xff08;同步加載&#xff09;的問題卡死。所以可以到Unity的PacakgeCache中修改本地倉庫中的Addressable對應版本的包。找不到位置可以用everything搜…

計算機視覺之ResNet50圖像分類

前言 圖像分類是計算機視覺應用中最基礎的一種&#xff0c;屬于有監督學習類別。它的任務是給定一張圖像&#xff0c;判斷圖像所屬的類別&#xff0c;比如貓、狗、飛機、汽車等等。本章將介紹使用ResNet50網絡對CIFAR-10數據集進行分類。 ResNet網絡介紹 ResNet50網絡是由微…

Nature Protocols:整合多組學并進行因果推理的系統框架

轉載自&#xff1a;MetaAI 在生物學研究中&#xff0c;隨著實驗和計算技術的進步&#xff0c;生物系統研究產生了大量高通量數據。技術努力主要集中在提高吞吐量、降低成本和提升實驗與計算效率。因此&#xff0c;整合不同類型組學數據&#xff0c;并通過關聯分析識別關鍵因素…

linux 內核 紅黑樹接口說明

紅黑樹(rbtree)在linux內核中使用非常廣泛,cfs調度任務管理&#xff0c;vma管理等。本文不會涉及關于紅黑樹插入和刪除時的各種case的詳細描述,感興趣的讀者可以查閱其他資料。本文主要聚焦于linux內核中經典rbtree和augment-rbtree操作接口的說明。 1、基本概念 二叉樹:每個…

基于主成分分析PCA的一維時間序列信號降噪方法(Python)

主成分分析PCA是面向模式分類的特征提取最典型的工具&#xff0c;是滿足上述映射準則的一種數據壓縮的方法。作為經典的特征提取方法&#xff0c;是在不減少原始數據所包含的內在信息前提下&#xff0c;將原始數據集轉化為由維數較少的“有效”特征成分來表示&#xff0c;使其在…

GD32F303之CAN通信

1、CAN時鐘 GD32F303主時鐘頻率最大是120Mhz,然后APB1時鐘最大是60Mhz,APB2時鐘最大是120Mhz,CAN掛載在APB1總線上面 所以一般CAN的時鐘頻率是60Mhz,這個頻率和后面配置波特率有關 2、GD32F303時鐘配置 首先我們知道芯片有幾個時鐘 HXTAL&#xff1a;高速外部時鐘&#xff1…

用理解與包容對待阿斯伯格綜合征患者

在我們的社會中&#xff0c;存在著這樣一個特殊的群體——阿斯伯格綜合征患者。他們在社交互動、溝通交流和行為模式上有著獨特的表現&#xff0c;需要我們以正確的方式去理解和對待。 我們要認識到阿斯伯格綜合征是一種神經發育障礙&#xff0c;而非個人的選擇或過錯。患者可能…