鸿蒙语言基础类库:【@ohos.util.Vector (线性容器Vector)】
线性容器Vector
说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。
Vector是一种线性数据结构,底层基于数组实现。当Vector的内存用尽时,会自动分配更大的连续内存区,将原先的元素复制到新的内存区,并释放旧的内存区。使用Vector能够高效快速地访问元素。
Vector和[ArrayList]相似,都是基于数组实现,但Vector提供了更多操作数组的接口。它们都可以动态调整容量,但Vector每次扩容增加1倍,ArrayList只扩容0.5倍。
推荐使用场景: 当数据量大时,一般使用Vector来存取数据。
导入模块
import Vector from @ohos.util.Vector; 1Vector
属性系统能力: SystemCapability.Utils.Lang
constructor()
Vector的构造函数。
系统能力: SystemCapability.Utils.Lang
示例:
let vector = new Vector(); 1 addadd(element: T): boolean
在Vector中尾部插入元素。
系统能力: SystemCapability.Utils.Lang
参数:
返回值:
示例:
let vector = new Vector(); let result = vector.add("a"); let result1 = vector.add(1); let b = [1, 2, 3]; vector.add(b); let c = {name : "lala", age : "13"}; let result3 = vector.add(c); 1234567 insertinsert(element: T, index: number): void
在长度范围内任意插入指定元素。
系统能力: SystemCapability.Utils.Lang
参数:
示例:
let vector = new Vector(); vector.insert("A", 0); vector.insert(0, 1); vector.insert(true, 2); 1234 hashas(element: T): boolean
判断此Vector中是否含有该指定元素。
系统能力: SystemCapability.Utils.Lang
参数:
返回值:
示例:
let vector = new Vector(); let result = vector.has("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); vector.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); let result1 = vector.has("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); 1234 getIndexOfgetIndexOf(element: T): number
返回指定元素第一次出现时的下标值,查找失败返回-1。
系统能力: SystemCapability.Utils.Lang
参数:
返回值:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(2); vector.add(1); vector.add(2); vector.add(4); let result = vector.getIndexOf(2); 123456789 getLastIndexOfgetLastIndexOf(element: T): number
返回指定元素最后一次出现时的下标值,查找失败返回-1。
系统能力: SystemCapability.Utils.Lang
参数:
返回值:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(2); vector.add(1); vector.add(2); vector.add(4); let result = vector.getLastIndexOf(2); 123456789 removeByIndexremoveByIndex(index: number): T
根据元素的下标值查找元素,返回元素后将其删除。
系统能力: SystemCapability.Utils.Lang
参数:
返回值:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(2); vector.add(4); let result = vector.removeByIndex(2); 1234567 removeremove(element: T): boolean
删除查找到的第一个指定的元素。
系统能力: SystemCapability.Utils.Lang
参数:
返回值:
返回值:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); let result = vector.remove(2); 123456 removeByRangeremoveByRange(fromIndex: number, toIndex: number): void
从一段范围内删除元素,包括起始值但不包括终止值。
系统能力: SystemCapability.Utils.Lang
参数:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); vector.removeByRange(2,4); vector.removeByRange(4,3); vector.removeByRange(2,6); 12345678 replaceAllElementsreplaceAllElements(callbackfn: (value: T, index?: number, vector?: Vector) => T, thisArg?: Object): void
用户操作Vector中的元素,用操作后的元素替换原元素并返回操作后的元素。
系统能力: SystemCapability.Utils.Lang
参数:
callbackfn的参数说明:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); vector.replaceAllElements((value: number, index: number) => { return value = 2 * value; }); vector.replaceAllElements((value: number, index: number) => { return value = value - 2; }); 1234567891011 forEachforEach(callbackfn: (value: T, index?: number, vector?: Vector) => void, thisArg?: Object): void
通过回调函数来遍历Vector实例对象上的元素以及元素对应的下标。
系统能力: SystemCapability.Utils.Lang
参数:
callbackfn的参数说明:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); vector.forEach((value, index) => { console.log("value:" + value, index) }); 12345678 sortsort(comparator?: (firstValue: T, secondValue: T) => number): void
对Vector中的元素进行一个排序操作。
系统能力: SystemCapability.Utils.Lang
参数:
comparator的参数说明:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); vector.sort((a: number, b: number) => a - b); vector.sort((a: number, b: number) => b - a); vector.sort(); 12345678 subVectorsubVector(fromIndex: number, toIndex: number): Vector
根据下标截取Vector中的一段元素,并返回这一段vector实例,包括起始值但不包括终止值。
系统能力: SystemCapability.Utils.Lang
参数:
返回值:
返回值:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); let result = vector.subVector(2,4); let result1 = vector.subVector(4,3); let result2 = vector.subVector(2,6); 12345678 clearclear(): void
清除Vector中的所有元素,并把length置为0。
系统能力: SystemCapability.Utils.Lang
返回值:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); vector.clear(); 123456 cloneclone(): Vector
克隆一个与Vector相同的实例,并返回克隆后的实例。修改克隆后的实例并不会影响原实例。
系统能力: SystemCapability.Utils.Lang
返回值:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); let result = vector.clone(); 123456 getCapacitygetCapacity(): number
获取当前实例的容量大小。
系统能力: SystemCapability.Utils.Lang
返回值:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); let result = vector.getCapacity(); 123456 convertToArrayconvertToArray(): Array
把当前Vector实例转换成数组,并返回转换后的数组。
系统能力: SystemCapability.Utils.Lang
返回值:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); let result = vector.convertToArray(); 123456 isEmptyisEmpty(): boolean
判断该Vector是否为空。
系统能力: SystemCapability.Utils.Lang
返回值:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); let result = vector.isEmpty(); 123456 increaseCapacityToincreaseCapacityTo(newCapacity: number): void
如果传入的新容量大于或等于Vector中的元素个数,将容量变更为新容量。
系统能力: SystemCapability.Utils.Lang
参数:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); vector.increaseCapacityTo(2); vector.increaseCapacityTo(8); 1234567 trimToCurrentLengthtrimToCurrentLength(): void
把容量限制为当前的length大小。
系统能力: SystemCapability.Utils.Lang
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); vector.trimToCurrentLength(); 123456 toStringtoString(): string
用","将Vector实例中的元素按顺序拼接成字符串。
系统能力: SystemCapability.Utils.Lang
返回值:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); let result = vector.toString(); 123456 copyToArraycopyToArray(array: Array): void
将Vector实例中的元素按照下标复制到指定数组。
系统能力: SystemCapability.Utils.Lang
参数:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); let array = ["a", "b", "c", "d", "e", "f"]; let result = vector.copyToArray(array); 1234567 getFirstElementgetFirstElement(): T
获取实例中的第一个元素。
系统能力: SystemCapability.Utils.Lang
返回值:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); let result = vector.getFirstElement(); 123456 getLastElementgetLastElement(): T
获取Vector实例中的最后一个元素。
系统能力: SystemCapability.Utils.Lang
返回值:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); let result = vector.getLastElement(); 123456 getLastIndexFromgetLastIndexFrom(element: T, index: number): number
从指定索引向后搜索,返回该元素的下标索引。
系统能力: SystemCapability.Utils.Lang
参数:
返回值:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); vector.add("a"); let result = vector.getLastIndexFrom(4,3); 1234567 getIndexFromgetIndexFrom(element: T, index: number): number
从指定索引向前搜索,返回该元素的下标索引。
系统能力: SystemCapability.Utils.Lang
参数:
返回值:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); vector.add("a"); let result = vector.getIndexFrom(4, 3); 1234567 setLengthsetLength(newSize: number): void
设置Vector实例的元素个数。
系统能力: SystemCapability.Utils.Lang
参数:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); vector.setLength(8); vector.setLength(2); 1234567 getget(index: number): T
根据下标值获取Vector实例中的元素。
系统能力: SystemCapability.Utils.Lang
参数:
返回值:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); let result = vector.get(2); 123456 setset(index: number, element: T): T
将此Vector中指定位置的元素替换为指定元素。
系统能力: SystemCapability.Utils.Lang
参数:
返回值:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); let result = vector.set(2, "A"); 123456 [Symbol.iterator]Symbol.iterator: IterableIterator
返回一个迭代器,迭代器的每一项都是一个 JavaScrIPt 对象,并返回该对象。
系统能力: SystemCapability.Utils.Lang
返回值:
示例:
let vector = new Vector(); vector.add(2); vector.add(4); vector.add(5); vector.add(4); // 使用方法一: for (let item of vector) { console.log("value:" + item); } // 使用方法二: let iter = vector[Symbol.iterator](); let temp = iter.next().value; while(temp != undefined) { console.log("value:" + temp); temp = iter.next().value; }Ongwu博客 版权声明:以上内容未经允许不得转载!授权事宜或对内容有异议或投诉,请联系站长,将尽快回复您,谢谢合作!