HarmonyOS 非线性容器HashMap 常用的几个方法

 HarmonyOS 非线性容器HashMap 的好处 

  1. 快速查找

    • HashMap基于哈希表实现,通过key的哈希值确定存储位置,从而实现了快速的键值对查找。
    • 这种基于哈希的查找方式使得HashMap在平均情况下具有O(1)的时间复杂度,即查找速度与集合大小无关,因此非常适合处理大规模数据集。
  2. 唯一键约束

    • HashMap要求存储的键值对中key是唯一的,每个key只能对应一个value。
    • 这种约束保证了数据的唯一性和一致性,避免了数据重复的问题。
  3. 动态扩容

    • HashMap具有动态扩容的能力,当元素数量超过当前容量时,会自动进行扩容操作。
    • 扩容操作通常涉及创建一个更大的数组,并将现有元素重新哈希并存储到新数组中。这种机制保证了HashMap在存储大量数据时仍能保持良好的性能。
  4. 灵活的数据类型

    • HashMap支持泛型定义,允许用户根据需要指定key和value的类型。
    • 这种灵活性使得HashMap可以存储各种类型的数据,如字符串、数字、对象等,满足了不同应用场景的需求。
  5. 丰富的API支持

    • HarmonyOS为HashMap提供了丰富的API,包括添加、删除、查找、更新等操作。
    • 这些API使得用户可以方便地操作HashMap中的数据,提高了开发效率和代码的可读性。

 

HashMap底层使用数组+链表+红黑树的方式实现,查询、插入和删除的效率都很高。HashMap存储内容基于key-value的键值对映射,不能有重复的key,且一个key只能对应一个value。

HashMap和TreeMap相比,HashMap依据键的hashCode存取数据,访问速度较快。而TreeMap是有序存取,效率较低。

HashSet基于HashMap实现。HashMap的输入参数由key、value两个值组成。在HashSet中,只对value对象进行处理。

推荐使用场景: 需要快速存取、删除以及插入键值对数据时,推荐使用HashMap。

 

导入模块

import { HashMap } from '@kit.ArkTS';

HashMap

1. constructor

2. isEmpty

3. hasKey

4. hasValue

HashMap

属性

名称类型可读可写说明
lengthnumberHashMap的元素个数。

1. constructor

constructor()

HashMap的构造函数。

使用方式:

let hashMap: HashMap<string, number> = new HashMap();

2. isEmpty

isEmpty(): boolean

判断该HashMap是否为空。

返回值:

类型说明
boolean为空返回true,不为空返回false。

使用方式:

const hashMap: HashMap<string, number> = new HashMap();
let result = hashMap.isEmpty();

3. hasKey

hasKey(key: K): boolean

判断此HashMap中是否含有该指定key。

参数:

参数名类型必填说明
keyK指定Key。

返回值:

类型说明
boolean包含指定Key返回true,否则返回false。

使用方式:

const hashMap: HashMap<string, number> = new HashMap();
hashMap.set("squirrel", 123);
let result = hashMap.hasKey("squirrel");

4. hasValue

hasValue(value: V): boolean

判断此HashMap中是否含有该指定value。

参数:

参数名类型必填说明
valueV指定value。

返回值:

类型说明
boolean包含指定value返回true,否则返回false。

使用方式:

const hashMap: HashMap<string, number> = new HashMap();
hashMap.set("squirrel", 123);
let result = hashMap.hasValue(123);

 如需要其他方法 请参考官方文档

制作不易 点个关注再走吧。°(°¯᷄◠¯᷅°)°。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值