鸿蒙开发-ArkTS语言-容器

鸿蒙开发-UI-交互事件-键鼠事件

鸿蒙开发-UI-交互事件-焦点事件

鸿蒙开发-UI-交互事件-手势事件

鸿蒙开发-UI-web

鸿蒙开发-UI-web-页面

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

鸿蒙开发-ArkTS语言-并发

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

文章目录

前言

一、容器类库概述

二、线性容器

1.ArrayList

2.Vector

3.List

4.LinkedList

5.Deque

6.Queue

7.Stack

三、线性容器使用

总结


前言

上文详细学习了鸿蒙开发使用多线程并发的开发方式,针对CPU密集、IO密集以及同步任务开发场景做了一些开发说明,本文将学习鸿蒙开发ArkTS语言容器类库相关知识

一、容器类库概述

容器类库用于存储各种数据类型的元素,并具备一系列处理数据元素的方法。容器类采用了类似静态语言的方式来实现,并通过对存储位置以及属性的限制,让每种类型的数据都能在完成自身功能的基础上去除冗余逻辑,保证了数据的高效访问,提升了应用的性能。

二、线性容器

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

1.ArrayList

常用操作API:

操作

描述

增加元素

通过add(element: T)函数每次在数组尾部增加一个元素。

通过insert(element: T, index: number)在指定位置插入一个元素。

访问元素

通过arr[index]获取指定index对应的value值,通过指令获取保证访问速度。

通过forEach(callbackFn: (value: T, index?: number, arrlist?: ArrayList<T>) => void, thisArg?: Object): void访问整个ArrayList容器的元素。

通过[Symbol.iterator]():IterableIterator<T>迭代器进行数据访问。

修改元素

通过arr[index] = xxx修改指定index位置对应的value值。

删除元素

通过remove(element: T)删除第一个匹配到的元素。

通过removeByRange(fromIndex: number, toIndex:number)删除指定范围内的元素。

2.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<T>) => void, thisArg?: Object)访问整个Vector的元素。

通过[Symbol.iterator]():IterableIterator<T>迭代器进行数据访问。

修改元素

通过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)删除指定范围内的元素。

3.List

常用操作API:

操作

描述

增加元素

通过add(element: T)函数每次在数组尾部增加一个元素。

通过insert(element: T, index: number)在指定位置插入一个元素。

访问元素

通过list[index]获取指定index对应的value值,通过指令获取保证访问速度。

通过get(index: number)获取指定index位置对应的元素。

通过getFirst()获取第一个元素。

通过getLast()获取最后一个元素。

通过getIndexOf(element: T)获取第一个匹配到元素的位置。

通过getLastIndexOf(element: T)获取最后一个匹配到元素的位置。

通过forEach(callbackfn: (value:T, index?: number, list?: List<T>)=> void,thisArg?: Object)访问整个List的元素。

通过[Symbol.iterator]():IterableIterator<T>迭代器进行数据访问。

修改元素

通过list[index] = xxx修改指定index位置对应的value值。

通过set(index:number, element: T)修改指定index位置的元素值为element。

通过replaceAllElements(callbackFn:(value: T,index?: number,list?: List<T>)=>T,thisArg?: Object)对List内元素进行替换操作。

删除元素

通过removeByIndex(index:number)删除index位置对应的value值。

通过remove(element:T)删除第一个匹配到的元素。

4.LinkedList

常用操作API:

操作

描述

增加元素

通过add(element: T)函数每次在数组尾部增加一个元素。

通过insert(index: number, element: T)在指定位置插入一个元素。

访问元素

通过list[index]获取指定index对应的value值,通过指令获取保证访问速度。

通过get(index: number)获取指定index位置对应的元素。

通过getFirst()获取第一个元素。

通过getLast()获取最后一个元素。

通过getIndexOf(element: T)获取第一个匹配到元素的位置。

通过getLastIndexOf(element: T)获取最后一个匹配到元素的位置。

通过forEach(callbackFn: (value: T, index?: number, list?: LinkedList<T>) => void, thisArg?: Object)访问整个LinkedList的元素。

通过[Symbol.iterator]():IterableIterator<T>迭代器进行数据访问。

修改元素

通过list[index]=xxx修改指定index位置对应的value值。

通过set(index: number,element: T)修改指定index位置的元素值为element。

删除元素

通过removeByIndex(index: number)删除index位置对应的value值。

通过remove(element: T)删除第一个匹配到的元素。

5.Deque

常用操作API:

操作

描述

增加元素

通过insertFront(element: T)函数每次在队头增加一个元素。

增加元素

通过insertEnd(element: T)函数每次在队尾增加一个元素。

访问元素

通过getFirst()获取队首元素的value值,但是不进行出队操作。

通过getLast()获取队尾元素的value值,但是不进行出队操作。

通过popFirst()获取队首元素的value值,并进行出队操作。

通过popLast()获取队尾元素的value值,并进行出队操作。

通过forEach(callbackFn:(value: T, index?: number, deque?: Deque<T>) => void, thisArg?: Object)访问整个Deque的元素。

通过[Symbol.iterator]():IterableIterator<T>迭代器进行数据访问。

修改元素

通过forEach(callbackFn:(value: T, index?: number, deque?: Deque<T>)=> void, thisArg?: Object)对队列进行修改操作。

删除元素

通过popFirst()对队首元素进行出队操作并删除。

通过popLast()对队尾元素进行出队操作并删除。

6.Queue

常用操作API:

操作

描述

增加元素

通过add(element: T)函数每次在队尾增加一个元素。

访问元素

通过getFirst()获取队首元素的value值,但是不进行出队操作。

通过pop()获取队首元素的value值,并进行出队操作。

通过forEach(callbackFn: (value: T, index?: number, queue?: Queue<T>) => void,thisArg?: Object)访问整个Queue的元素。

通过[Symbol.iterator]():IterableIterator<T>迭代器进行数据访问。

修改元素

通过forEach(callbackFn:(value: T, index?: number, queue?: Queue<T>) => void,thisArg?: Object)对队列进行修改操作。

删除元素

通过pop()对队首进行出队操作并删除。

7.Stack

常用操作API:

操作

描述

增加元素

通过push(item: T)函数每次在栈顶增加一个元素。

访问元素

通过peek()获取栈顶元素的value值,但是不进行出栈操作。

通过pop()获取栈顶的value值,并进行出栈操作。

通过forEach(callbackFn: (value: T, index?: number, stack?: Stack<T>) => void, thisArg?: Object)访问整个Stack的元素。

通过[Symbol.iterator]():IterableIterator<T>迭代器进行数据访问。

通过locate(element: T)获取元素对应的位置。

修改元素

通过forEach(callbackFn:(value: T, index?: number, stack?: Stack<T>) => void, thisArg?: Object)对栈内元素进行修改操作。

删除元素

通过pop()对栈顶进行出栈操作并删除。

三、线性容器使用

线性容器常用API使用案例


总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值