当前位置: 首页 > news >正文

鸿蒙语言基础类库:【@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;
}

相关文章:

鸿蒙语言基础类库:【@ohos.util.TreeSet (非线性容器TreeSet)】

非线性容器TreeSet 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 T…...

freemarker生成pdf,同时pdf插入页脚,以及数据量大时批量处理

最近公司有个需求&#xff0c;就是想根据一个模板生成一个pdf文档&#xff0c;当即我就想到了freemarker这个远古老东西&#xff0c;毕竟freemarker在模板渲染方面还是非常有优势的。 准备依赖&#xff1a; <dependency><groupId>org.springframework.boot</gr…...

勇攀新高峰|暴雨信息召开2024年中述职工作会议

7月8日至9日&#xff0c;暴雨信息召开2024年中述职工作会议&#xff0c;总结回顾了上半年的成绩和不足&#xff0c;本次会议采用线上线下的方式举行&#xff0c;公司各部门管理人员、前台市场营销人员参加述职&#xff0c;公司领导班子出席会议。 本次述职采取了现场汇报点评的…...

C++:filter2D函数简要概述

OpenCV中的filter2D函数是一个非常强大的工具&#xff0c;用于对图像进行卷积操作&#xff0c;从而应用各种线性滤波器。这个函数能够处理图像中的每个像素&#xff0c;通过将其与指定的卷积核&#xff08;或称为滤波器&#xff09;进行卷积运算&#xff0c;来修改图像的特性。…...

Postman使用教程【项目实战】

目录 引言软件下载及安装项目开发流程1. 创建项目2. 创建集合(理解为&#xff1a;功能模块)3. 设置环境变量&#xff0c;4. 创建请求5. 测试脚本6. 响应分析7. 共享与协作 结语 引言 Postman 是一款功能强大的 API 开发工具&#xff0c;它可以帮助开发者测试、开发和调试 API。…...

微软Phi-3:小型而强大的AI模型解析与实战指南

微软Phi-3&#xff1a;小型而强大的AI模型解析与实战指南 引言 随着人工智能技术的飞速发展&#xff0c;小型而高效的AI模型逐渐成为研究与应用的新热点。微软研究院推出的Phi-3系列模型&#xff0c;以其卓越的性能和高效的成本效益&#xff0c;在AI领域引起了广泛关注。本文…...

Python 获取 SQL 指纹和 HASH 值

前言 本文介绍一个提取 SQL 指纹的方法&#xff0c;就是将 SQL 语句的条件转换为 &#xff1f;可用于脱敏和 SQL 聚类分析的场景。 1. 工具安装 这里用到的工具&#xff0c;就是 pt 工具集中的 pt-fingerprint 含在 Percona Toolkit 中&#xff0c;安装方法可参考 Percona T…...

基于OpenCv的快速图片颜色交换,轻松实现图片背景更换

图片颜色更换 图片颜色转换 当我们有2张图片,很喜欢第一张图片的颜色,第2张图片的前景照片,很多时候我们需要PS进行图片的颜色转换,这当然需要我们有强大的PS功底,当然小编这里不是介绍PS的,我们使用代码完全可以代替PS 进行图片的颜色转换 图片颜色转换步骤: 步骤…...

在Linux下直接修改磁盘镜像文件的内容

背景 嵌入式Linux系统通常在调试稳定后&#xff0c;会对磁盘&#xff08;SSD、NVME、SD卡、TF卡&#xff09;做个镜像&#xff0c;通常是.img后缀的文件&#xff0c;以后组装新设备时&#xff0c;就将镜像文件烧录到新磁盘即可&#xff0c;非常简单。 这种方法有个不便之处&a…...

ASP.NET Core----基础学习03----开发者异常页面 MVC工作原理及实现

文章目录 1. 开发者异常页面(1)Startup.cs 页面的基础配置(2)自定义显示报错代码的前后XX行 2. MVC 的原理3. MVC 的实现4.默认路由路径5.返回Json字符串 1. 开发者异常页面 (1)Startup.cs 页面的基础配置 namespace ASP.Net_Blank {public class Startup{private readonly IC…...

jvm 07 GC算法,内存池,对象内存分配

01 垃圾判断算法 1.1引用计数算法 最简单的垃圾判断算法。在对象中添加一个属性用于标记对象被引用的次数&#xff0c;每多一个其他对象引用&#xff0c;计数1&#xff0c; 当引用失效时&#xff0c;计数-1&#xff0c;如果计数0&#xff0c;表示没有其他对象引用&#xff0c;…...

ComfyUI入门教程

本文主要介绍了通过源码运行comfyui&#xff0c;默认例子介绍&#xff0c;节点管理器的使用&#xff0c;以及界面汉化。可多参考开源工作流&#xff0c;多加实践&#xff0c;从而掌握comfyui操作。 1.源码运行comfyui 执行命令python main.py如下&#xff1a; 安装numpy 1.x最…...

Flutter TabBar与TabBarView联动及获取当前点击栏目索引

TabBar还有TabBarView都是谷歌flutter官方组件库——Material组件库提供的组件&#xff0c;其中TabBar用于导航切换&#xff0c;TabBarView则是配合其切换显示的对应的视图&#xff0c;官网参考地址&#xff1a;TabBarView class - material library - Dart API。 实现一体联动…...

【区块链+跨境服务】跨境出口电商溯源 | FISCO BCOS应用案例

当前跨境出口电商已成为带动我国外贸发展的中坚力量&#xff0c;尤其疫情特殊时期&#xff0c;成为推动经济增长的一个重要组成 部分。但是跨境出口电商流程长、环节多&#xff0c;且需辗转于不同的服务商以及国家之间&#xff0c;监管与定位也相对困难&#xff0c;容 易出现诸…...

记录一次mysql死锁问题的分析排查

记录一次死锁问题的分析排查 现象 底层往kafka推送设备上线数据应用层拉取设备上线消息,应用层有多个消费者并发执行将设备上线数据同步数据库表pa_terminal_channel日志报&#xff1a;&#xff08;Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: …...

【UE5.1 角色练习】16-枪械射击——瞄准

目录 效果 步骤 一、瞄准时拉近摄像机位置 二、瞄准偏移 三、向指定方向射击 四、连发 效果 步骤 一、瞄准时拉近摄像机位置 打开角色蓝图&#xff0c;在事件图表中添加如下节点&#xff0c;当进入射击状态时设置目标臂长度为300&#xff0c;从而拉近视角。 但是这样切…...

04OLED简介和调试方法

OLED简介和调试方法 调试方式串口调试显示屏调试其他调试方法总结&#xff1a; OLED简介硬件电路OLED驱动函数 keil调试模式进入方法keil调试界面窗口简单功能说明更加强大的功能 调试方式 电脑想看什么变量可以直接打印到屏幕&#xff0c;但是单片机很多时候由于成本和电路结构…...

“LNMP环境搭建实战指南:从零开始配置CentOS 7下的Nginx、MySQL与PHP“

目录 1.前言 2.准备工作 2.1.环境信息 2.2.关闭SELinux和firewalld 3.安装Nginx 3.1.运行以下命令&#xff0c;安装Nginx 3.2.运行以下命令&#xff0c;查看Nginx版本 4.安装MySQL 4.1.更新秘钥 4.2.配置MySQL的YUM仓库 4.3.安装MySQL 4.4.查看MySQL版本 4.5.启动…...

院内导航:如何用科技破解就医找路难题

自2019年开始“院内导航”被纳入医院智慧服务评估体系以来&#xff0c;到2023年改善就医服务升级的部署&#xff0c;每一步都见证了我国医疗卫生体系向智能化、人性化迈进的坚实步伐。 面对庞大复杂的医院环境与日益增长的就诊需求&#xff0c;如何让患者在茫茫人海中迅速找到就…...

C++基础篇(1)

目录 前言 1.第一个C程序 2.命名空间 2.1概念理解 2.2namespace 的价值 2.3 namespace的定义 3.命名空间的使用 4.C的输入输出 结束语 前言 本节我们将正式进入C基础的学习&#xff0c;话不多说&#xff0c;直接上货&#xff01;&#xff01;&#xff01; 1.第一个C程…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

离线语音识别方案分析

随着人工智能技术的不断发展&#xff0c;语音识别技术也得到了广泛的应用&#xff0c;从智能家居到车载系统&#xff0c;语音识别正在改变我们与设备的交互方式。尤其是离线语音识别&#xff0c;由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力&#xff0c;广…...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇&#xff1a;Apollo Client 配置与缓存 上一篇&#xff1a;GraphQL 入门篇&#xff1a;基础查询语法 依旧和上一篇的笔记一样&#xff0c;主实操&#xff0c;没啥过多的细节讲解&#xff0c;代码具体在&#xff1a; https://github.com/GoldenaArcher/graphql…...

GraphRAG优化新思路-开源的ROGRAG框架

目前的如微软开源的GraphRAG的工作流程都较为复杂&#xff0c;难以孤立地评估各个组件的贡献&#xff0c;传统的检索方法在处理复杂推理任务时可能不够有效&#xff0c;特别是在需要理解实体间关系或多跳知识的情况下。先说结论&#xff0c;看完后感觉这个框架性能上不会比Grap…...

路由基础-路由表

本篇将会向读者介绍路由的基本概念。 前言 在一个典型的数据通信网络中&#xff0c;往往存在多个不同的IP网段&#xff0c;数据在不同的IP网段之间交互是需要借助三层设备的&#xff0c;这些设备具备路由能力&#xff0c;能够实现数据的跨网段转发。 路由是数据通信网络中最基…...