ArrayList是一种线性数据结构,底层基于数组实现。ArrayList会根据实际需要动态调整容量,每次扩容增加50%。
ArrayList和Vector相似,都是基于数组实现。它们都可以动态调整容量,但Vector每次扩容增加1倍。
ArrayList和LinkedList相比,ArrayList的随机访问效率更高。但由于ArrayList的增删操作会影响数组内其他元素的移动,LinkedList的增加和删除操作效率更高。
推荐使用场景: 当需要频繁读取集合中的元素时,推荐使用ArrayList。
文档中存在泛型的使用,涉及以下泛型标记符:
- T:Type,类
说明:
本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
导入模块
import ArrayList from '@ohos.util.ArrayList';
ArrayList
属性
系统能力: SystemCapability.Utils.Lang
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
length | number | 是 | 否 | ArrayList的元素个数。 |
constructor
constructor()
ArrayList的构造函数。
系统能力: SystemCapability.Utils.Lang
错误码:
以下错误码的详细介绍请参见语言基础类库错误码。
错误码ID | 错误信息 |
---|---|
10200012 | The ArrayList's constructor cannot be directly invoked. |
示例:
let arrayList: ArrayList<string | number> = new ArrayList();
add
add(element: T): boolean
在ArrayList尾部插入元素。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
element | T | 是 | 待插入的元素。 |
返回值:
类型 | 说明 |
---|---|
boolean | 插入成功返回true,失败返回false。 |
错误码:
以下错误码的详细介绍请参见语言基础类库错误码。
错误码ID | 错误信息 |
---|---|
10200011 | The add method cannot be bound. |
示例:
class C1 {
name: string = ""
age: string = ""
}
let arrayList: ArrayList<string | number | boolean | Array<number> | C1> = new ArrayList();
let result1 = arrayList.add("a");
let arrayList1: ArrayList<number> = new ArrayList();
let result2 = arrayList.add(1);
let b = [1, 2, 3];
let result3 = arrayList.add(b);
let c : C1 = {name: "Dylon", age: "13"}
let result4 = arrayList.add(c);
let result5 = arrayList.add(false);
insert
insert(element: T, index: number): void
在长度范围内任意位置插入指定元素。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
element | T | 是 | 被插入的元素。 |
index | number | 是 | 被插入的位置索引。 |
错误码:
以下错误码的详细介绍请参见语言基础类库错误码。
错误码ID | 错误信息 |
---|---|
10200011 | The insert method cannot be bound. |
10200001 | The value of index is out of range. |
示例:
let arrayList: ArrayList<number | string | boolean> = new ArrayList();
arrayList.insert("A", 0);
arrayList.insert(0, 1);
arrayList.insert(true, 2);
has
has(element: T): boolean
判断此ArrayList中是否含有该指定元素。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
element | T | 是 | 指定元素。 |
返回值:
类型 | 说明 |
---|---|
boolean | 返回true表示包含指定元素,否则返回false。 |
错误码:
以下错误码的详细介绍请参见语言基础类库错误码。
错误码ID | 错误信息 |
---|---|
10200011 | The has method cannot be bound. |
示例:
let arrayList: ArrayList<string> = new ArrayList();
arrayList.add("squirrel");
let result: boolean = arrayList.has("squirrel");
getIndexOf
getIndexOf(element: T): number
返回指定元素第一次出现时的下标值,查找失败返回-1。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
element | T | 是 | 指定元素。 |
返回值:
类型 | 说明 |
---|---|