HarmonyOS NEXT开发:通过线性容器实现数组指导

线性容器实现能按顺序访问的数据结构,其底层主要通过数组实现,包括ArrayList、Vector、List、LinkedList、Deque、Queue、Stack七种。

线性容器,充分考虑了数据访问的速度,运行时(Runtime)通过一条字节码指令就可以完成增、删、改、查等操作。

ArrayList 

ArrayList即动态数组,可用来构造全局的数组对象。 当需要频繁读取集合中的元素时,推荐使用ArrayList。

ArrayList依据泛型定义,要求存储位置是一片连续的内存空间,初始容量大小为10,并支持动态扩容,每次扩容大小为原始容量的1.5倍。

ArrayList进行增、删、改、查操作的常用API如下:

操作 描述
增加元素 通过add(element: T)函数每次在数组尾部增加一个元素。
增加元素 通过insert(element: T, index: number)在指定位置插入一个元素。
访问元素 通过arr[index]获取指定index对应的value值,通过指令获取保证访问速度。
访问元素 通过forEach(callbackFn: (value: T, index?: number, arrlist?: ArrayList) => void, thisArg?: Object): void访问整个ArrayList容器的元素。
访问元素 通过[Symbol.iterator]():IterableIterator迭代器进行数据访问。
修改元素 通过arr[index] = xxx修改指定index位置对应的value值。
删除元素 通过remove(element: T)删除第一个匹配到的元素。
删除元素 通过removeByRange(fromIndex: number, toIndex:number)删除指定范围内的元素。

Vector

说明

API version 9开始,该接口不再维护,推荐使用ArrayList。

Vector是指连续存储结构,可用来构造全局的数组对象。Vector依据泛型定义,要求存储位置是一片连续的内存空间,初始容量大小为10,并支持动态扩容,每次扩容大小为原始容量的2倍。

Vector和ArrayList相似,都是基于数组实现,但Vector提供了更多操作数组的接口。Vector在支持操作符访问的基础上,还增加了get/set接口,提供更为完善的校验及容错机制,满足用户不同场景下的需求。

Vector进行增、删、改、查操作的常用API如下:

操作 描述
增加元素 通过add(element: T)函数每次在数组尾部增加一个元素。
增加元素 通过insert(element: T, index: number)在指定位置插入一个元素。
访问元素 通过vec[index]获取指定index对应的value值,通过指令获取保证访问速度。
访问元素 通过get(index: number)获取指定index位置对应的元素。
访问元素 通过getLastElement()获取最后一个元素。
访问元素 通过getIndexOf(element:T)获取第一个匹配到元素的位置。
访问元素 通过getLastIndexOf(element:T)获取最后一个匹配到元素的位置。
访问元素 通过forEach(callbackFn: (value: T, index?: number, Vector?: Vector) => void, thisArg?: Object)访问整个Vector的元素。
访问元素 通过[Symbol.iterator]():IterableIterator迭代器进行数据访问。
修改元素 通过vec[index]=xxx修改指定index位置对应的value值。
修改元素 通过set(index:number,element:T)修改指定index位置的元素值为element。
修改元素 通过setLength(newSize:number)设置Vector的长度大小。
删除元素 通过removeByIndex(index:number)删除index位置对应的value值。
删除元素 通过remove(element:T)删除第一个匹配到的元素。
删除元素 通过removeByRange(fromIndex:number,toIndex:number)删除指定范围内的元素。

List

你可能感兴趣的:(鸿蒙开发,HarmonyOS,OpenHarmony,开发语言,前端,服务器,harmonyos,华为,鸿蒙,鸿蒙系统)