鸿蒙开发-ArkTS语言-容器-非线性容器

鸿蒙开发-UI-web

鸿蒙开发-UI-web-页面

鸿蒙开发-ArkTS语言-基础类库

鸿蒙开发-ArkTS语言-并发

鸿蒙开发-ArkTS语言-并发-案例

鸿蒙开发-ArkTS语言-容器

文章目录

前言

一、非线性容器

1.HashMap

2.HashSet

3.TreeMap

4.TreeSet

5.LightWeightMap

6.LightWeightSet

7.PlainArray

二、非线性容器使用

总结


前言

上文详细学习鸿蒙开发ArkTS语言容器类库线性容器的特点以及常见操作的API,本文将学习非线性容器的相关知识。

一、非线性容器

非线性容器实现能快速查找的数据结构,其底层通过hash或者红黑树实现,包括HashMap、HashSet、TreeMap、TreeSet、LightWeightMap、LightWeightSet、PlainArray七种

1.HashMap

常用API如下:

操作 描述
增加元素 通过set(key: K, value: V)函数每次在HashMap增加一个键值对。
访问元素 通过get(key: K)获取key对应的value值。
访问元素 通过keys()返回一个迭代器对象,包含map中的所有key值。
访问元素 通过values()返回一个迭代器对象,包含map中的所有value值。
访问元素 通过entries()返回一个迭代器对象,包含map中的所有键值对。
访问元素 forEach(callbackFn: (value?: V, key?: K, map?: HashMap<K, V>) => void, thisArg?: Object)访问整个map的元素。
访问元素 通过Symbol.iterator():IterableIterator<K,V>迭代器进行数据访问。
修改元素 通过replace(key: K, newValue: V)对指定key对应的value值进行修改操作。
修改元素 通过forEach(callbackFn: (value?: V, key?: K, map?: HashMap<K, V>) => void, thisArg?: Object)对map中元素进行修改操作。
删除元素 通过remove(key: K)对map中匹配到的键值对进行删除操作。
删除元素 通过clear()清空整个map集合。

2.HashSet

常用API如下:

操作 描述
增加元素 通过add(value: T)函数每次在HashSet增加一个值。
访问元素 通过values()返回一个迭代器对象,包含set中的所有value值。
访问元素 通过entries()返回一个迭代器对象,包含类似键值对的数组,键值都是value。
访问元素 通过forEach(callbackFn: (value?: T, key?: T, set?: HashSet<T>) => void, thisArg?: Object)访问整个set的元素。
访问元素 通过Symbol.iterator():IterableIterator<T>迭代器进行数据访问。
修改元素 通过forEach(callbackFn: (value?: T, key?: T, set?: HashSet<T>) => void, thisArg?: Object)对set中value进行修改操作。
删除元素 通过remove(value: T)对set中匹配到的值进行删除操作。
删除元素 通过clear()清空整个set集合。

3.TreeMap

常用API如下:

操作 描述
增加元素 通过set(key: K,value: V)函数每次在TreeMap增加一个键值对。
访问元素 通过get(key: K)获取key对应的value值。
访问元素 通过getFirstKey()获取map中排在首位的key值。
访问元素 通过getLastKey()获取map中排在未位的key值。
访问元素 通过keys()返回一个迭代器对象,包含map中的所有key值。
访问元素 通过values()返回一个迭代器对象,包含map中的所有value值。
访问元素 通过entries()返回一个迭代器对象,包含map中的所有键值对。
访问元素 通过forEach(callbackFn: (value?: V, key?: K, map?: TreeMap<K, V>) => void, thisArg?: Object)访问整个map的元素。
访问元素 通过Symbol.iterator():IterableIterator<K,V>迭代器进行数据访问。
修改元素 通过replace(key: K,newValue: V)对指定key对应的value值进行修改操作。
修改元素 通过forEach(callbackFn: (value?: V, key?: K, map?: TreeMap<K, V>) => void, thisArg?: Object)对map中元素进行修改操作。
删除元素 通过remove(key: K)对map中匹配到的键值对进行删除操作。
删除元素 通过clear()清空整个map集合。

4.TreeSet

常用API如下:

操作 描述
增加元素 通过add(value: T)函数每次在TreeSet增加一个值。
访问元素 通过values()返回一个迭代器对象,包含set中的所有value值。
访问元素 通过entries()返回一个迭代器对象,包含类似键值对的数组,键值都是value。
访问元素 通过getFirstValue()获取set中排在首位的value值。
访问元素 通过getLastValue()获取set中排在未位的value值。
访问元素 通过forEach(callbackFn: (value?: T, key?: T, set?: TreeSet<T>) => void, thisArg?: Object)访问整个set的元素。
访问元素 通过Symbol.iterator():IterableIterator<T>迭代器进行数据访问。
修改元素 通过forEach(callbackFn: (value?: T, key?: T, set?: TreeSet<T>) => void, thisArg?: Object)对set中value进行修改操作。
删除元素 通过remove(value: T)对set中匹配到的值进行删除操作。
删除元素 通过clear()清空整个set集合。

5.LightWeightMap

常用API如下:

操作 描述
增加元素 通过set(key: K,value: V)函数每次在LightWeightMap增加一个键值对。
访问元素 通过get(key: K)获取key对应的value值。
访问元素 通过getIndexOfKey(key: K)获取map中指定key的index。
访问元素 通过getIndexOfValue(value: V)获取map中指定value出现的第一个的index。
访问元素 通过keys()返回一个迭代器对象,包含map中的所有key值。
访问元素 通过values()返回一个迭代器对象,包含map中的所有value值。
访问元素 通过entries()返回一个迭代器对象,包含map中的所有键值对。
访问元素 通过getKeyAt(index: number)获取指定index对应的key值。
访问元素 通过getValueAt(index: number)获取指定index对应的value值。
访问元素 通过forEach(callbackFn: (value?: V, key?: K, map?: LightWeightMap<K, V>) => void, thisArg?: Object)访问整个map的元素。
访问元素 通过Symbol.iterator():IterableIterator<K,V>迭代器进行数据访问。
修改元素 通过setValueAt(index: number, newValue: V)对指定index对应的value值进行修改操作。
修改元素 通过forEach(callbackFn: (value?: V, key?: K, map?: LightWeightMap<K, V>) => void, thisArg?: Object)对map中元素进行修改操作。
删除元素 通过remove(key: K)对map中匹配到的键值对进行删除操作。
删除元素 通过removeAt(index: number)对map中指定index的位置进行删除操作。
删除元素 通过clear()清空整个map集合。

6.LightWeightSet

常用API如下:

操作 描述
增加元素 通过add(obj: T)函数每次在LightWeightSet增加一个值。
访问元素 通过getIndexOf(key: T)获取对应的index值。
访问元素 通过values()返回一个迭代器对象,包含map中的所有value值。
访问元素 通过entries()返回一个迭代器对象,包含map中的所有键值对。
访问元素 通过getValueAt(index: number)获取指定index对应的value值。
访问元素 通过forEach(callbackFn: (value?: T, key?: T, set?: LightWeightSet<T>) => void, thisArg?: Object)访问整个set的元素。
访问元素 通过Symbol.iterator():IterableIterator<T>迭代器进行数据访问。
修改元素 通过forEach(callbackFn: (value?: T, key?: T, set?: LightWeightSet<T>) => void, thisArg?: Object)对set中元素进行修改操作。
删除元素 通过remove(key: K)对set中匹配到的键值对进行删除操作。
删除元素 通过removeAt(index: number)对set中指定index的位置进行删除操作。
删除元素 通过clear()清空整个set集合。

7.PlainArray

常用API如下:

操作 描述
增加元素 通过add(key: number,value: T)函数每次在PlainArray增加一个键值对。
访问元素 通过get(key: number)获取key对应的value值。
访问元素 通过getIndexOfKey(key: number)获取PlainArray中指定key的index。
访问元素 通过getIndexOfValue(value: T)获取PlainArray中指定value的index。
访问元素 通过getKeyAt(index: number)获取指定index对应的key值。
访问元素 通过getValueAt(index: number)获取指定index对应的value值。
访问元素 通过forEach(callbackFn: (value: T, index?: number, PlainArray?: PlainArray<T>) => void, thisArg?: Object)访问整个plainarray的元素。
访问元素 通过Symbol.iterator():IterableIterator<number, T>迭代器进行数据访问。
修改元素 通过setValueAt(index:number, value: T)对指定index对应的value值进行修改操作。
修改元素 通过forEach(callbackFn: (value: T, index?: number, PlainArray?: PlainArray<T>) => void, thisArg?: Object)对plainarray中元素进行修改操作。
删除元素 通过remove(key: number)对plainarray中匹配到的键值对进行删除操作。
删除元素 通过removeAt(index: number)对plainarray中指定index的位置进行删除操作。
删除元素 通过removeRangeFrom(index: number, size: number)对plainarray中指定范围内的元素进行删除操作。
删除元素 通过clear()清空整个PlainArray集合。

二、非线性容器使用

非线性容器HashMap、TreeMap、LightWeightMap、PlainArray的使用示例


总结

本文详细学习鸿蒙开发ArkTS语言容器类库非线性容器的特点以及常见操作的API,下文将学习XML生成、解析与转换相关知识。

相关推荐
Helen_cai28 分钟前
OpenHarmony Preferences 本地持久化存储开发(API Version23 + 适配版)
华为·harmonyos
国服第二切图仔2 小时前
HarmonyOS APP《画伴梦工厂》开发第51篇-Skill开发入门——VibeCoding与系统级智能入口
华为·harmonyos
哦***72 小时前
最后一块拼图补齐!华为大豆包时代开启✨
华为·音频·harmonyos
最爱老式锅包肉2 小时前
《HarmonyOS技术精讲-ArkGraphics 2D(方舟2D图形服务)》第七篇:动效来袭——与ArkUI结合实现2D动画与交互
华为·交互·harmonyos
HarmonyOS_SDK2 小时前
Account Kit新能力:AI赋能Skill接入“华为账号一键登录”,实现6倍效率飞跃
harmonyos
在书中成长3 小时前
HarmonyOS 小游戏《对战五子棋》开发第14篇 - 困难AI实现:Minimax算法原理详解
人工智能·算法·harmonyos
国服第二切图仔3 小时前
HarmonyOS APP《画伴梦工厂》开发第54篇-鸿蒙AI开放能力——语音与自然语言处理
人工智能·自然语言处理·harmonyos
在书中成长3 小时前
HarmonyOS 小游戏《对战五子棋》开发第12篇 - 简单AI实现:规则引擎与优先级策略
人工智能·华为·harmonyos
大雷神4 小时前
HarmonyOS 6.1 新能力实战:用“双镜记忆相机”把照片、地点与人重新连起来
数码相机·华为·harmonyos
心中有国也有家5 小时前
Flutter 鸿蒙编译与构建流程深度解析
学习·flutter·华为·harmonyos