HashMap底层使用数组+链表+红黑树的方式实现,查询、插入和删除的效率都很高。HashMap存储内容基于key-value的键值对映射,不能有重复的key,且一个key只能对应一个value。
HashMap和TreeMap相比,HashMap依据键的hashCode存取数据,访问速度较快。而TreeMap是有序存取,效率较低。
HashSet基于HashMap实现。HashMap的输入参数由key、value两个值组成。在HashSet中,只对value对象进行处理。
推荐使用场景: 需要快速存取、删除以及插入键值对数据时,推荐使用HashMap。
文档中存在泛型的使用,涉及以下泛型标记符:
- K:Key,键
- V:Value,值
说明:
本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
导入模块
import HashMap from '@ohos.util.HashMap';
HashMap
属性
系统能力: SystemCapability.Utils.Lang
| 名称 | 类型 | 可读 | 可写 | 说明 |
|---|---|---|---|---|
| length | number | 是 | 否 | HashMap的元素个数。 |
constructor
constructor()
HashMap的构造函数。
系统能力: SystemCapability.Utils.Lang
错误码:
以下错误码的详细介绍请参见语言基础类库错误码。
| 错误码ID | 错误信息 |
|---|---|
| 10200012 | The HashMap's constructor cannot be directly invoked. |
示例:
let hashMap: HashMap<string, number> = new HashMap();
isEmpty
isEmpty(): boolean
判断该HashMap是否为空。
系统能力: SystemCapability.Utils.Lang
返回值:
| 类型 | 说明 |
|---|---|
| boolean | 为空返回true,不为空返回false。 |
错误码:
以下错误码的详细介绍请参见语言基础类库错误码。
| 错误码ID | 错误信息 |
|---|---|
| 10200011 | The isEmpty method cannot be bound. |
示例:
const hashMap: HashMap<string, number> = new HashMap();
let result = hashMap.isEmpty();
hasKey
hasKey(key: K): boolean
判断此HashMap中是否含有该指定key。
系统能力: SystemCapability.Utils.Lang
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | K | 是 | 指定Key。 |
返回值:
| 类型 | 说明 |
|---|---|
| boolean | 包含指定Key返回true,否则返回false。 |
错误码:
以下错误码的详细介绍请参见语言基础类库错误码。
| 错误码ID | 错误信息 |
|---|---|
| 10200011 | The hasKey method cannot be bound. |
示例:
const hashMap: HashMap<string, number> = new HashMap();
hashMap.set("squirrel", 123);
let result = hashMap.hasKey("squirrel");
hasValue
hasValue(value: V): boolean
判断此HashMap中是否含有该指定value。
系统能力: SystemCapability.Utils.Lang
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| value | V | 是 | 指定value。 |
返回值:
| 类型 | 说明 |
|---|---|
| boolean | 包含指定value返回true,否则返回false。 |
错误码:
以下错误码的详细介

本文详细介绍了HarmonyOS中的HashMap底层实现、与TreeMap的区别,以及其在键值对操作中的高效性。同时涵盖了泛型使用和常见应用场景,对于开发者理解和使用HashMap提供了实用指导。
最低0.47元/天 解锁文章
3082

被折叠的 条评论
为什么被折叠?



