HarmonyOS 线性容器ArrayList 常用的几个方法

发布于:2024-12-18 ⋅ 阅读:(18) ⋅ 点赞:(0)

ArrayList是一种线性数据结构,底层基于数组实现。ArrayList会根据实际需要动态调整容量,每次扩容增加50%。

ArrayList和Vector相似,都是基于数组实现。它们都可以动态调整容量,但Vector每次扩容增加1倍。

ArrayList和LinkedList相比,ArrayList的随机访问效率更高。但由于ArrayList的增删操作会影响数组内其他元素的移动,LinkedList的增加和删除操作效率更高。

推荐使用场景: 当需要频繁读取集合中的元素时,推荐使用ArrayList。

HarmonyOS 线性容器ArrayList  的好处  

一、动态调整大小

  • 灵活性:ArrayList是一个可以动态调整大小的列表,可以根据需要自动增加或者减少容量。这种动态调整的特性使得ArrayList在处理不确定大小的数据集时更加灵活。

二、高效随机访问

  • 快速访问:ArrayList底层基于数组实现,因此支持高效的随机访问。通过索引可以直接访问到ArrayList中的任意元素,时间复杂度为O(1)。
  • 应用场景:当需要频繁读取集合中的元素时,ArrayList是一个很好的选择。例如,在需要快速查找、修改或遍历数据的场景中,ArrayList都能提供出色的性能。

三、丰富的操作方法

  • 便捷操作:ArrayList提供了丰富的方法,如add()、remove()、get()、set()等,方便对列表中的元素进行操作。
  • 扩展功能:除了基本的增删改查操作外,ArrayList还支持插入、判断包含、获取元素索引等高级操作,进一步提高了开发的便捷性。

四、性能优化

  • 扩容策略:虽然ArrayList在动态扩容时会有一定的开销,但其扩容策略(如每次扩容增加一定比例的容量)可以在一定程度上减少扩容的次数,从而优化性能。
  • 内存利用:ArrayList通过动态调整大小来优化内存利用,避免了因数组大小固定而导致的内存浪费或频繁复制数据的开销。

五、易于集成和使用

  • 集成方便:ArrayList作为HarmonyOS容器类库的一部分,可以方便地与其他HarmonyOS组件和框架进行集成。
  • 使用简单:ArrayList的API设计简洁明了,易于学习和使用。开发者可以快速地掌握ArrayList的使用方法,并将其应用于实际项目中。

ArrayList

1.constructor

2.add

3.insert

4.has

5.sort

6.remove

导入模块

import { ArrayList } from '@kit.ArkTS';

ArrayList

属性

名称 类型 可读 可写 说明
length number ArrayList的元素个数。

1. constructor

constructor()

ArrayList的构造函数。

 使用方式:

let arrayList: ArrayList<string | number> = new ArrayList();

2. add

add(element: T): boolean

在ArrayList尾部插入元素。

参数:

参数名 类型 必填 说明
element T 待插入的元素。

返回值:

类型 说明
boolean 插入成功返回true,失败返回false。

使用方式: 

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: "Dylan", age: "13"}
let result4 = arrayList.add(c);
let result5 = arrayList.add(false);

3. insert

insert(element: T, index: number): void

在长度范围内任意位置插入指定元素。

参数:

参数名 类型 必填 说明
element T 被插入的元素。
index number 被插入的位置索引。需要小于等于int32_max即2147483647。

 使用方式:

let arrayList: ArrayList<number | string | boolean> = new ArrayList();
arrayList.insert("A", 0);
arrayList.insert(0, 1);
arrayList.insert(true, 2);

 4. has

has(element: T): boolean

判断此ArrayList中是否含有该指定元素。

参数:

参数名 类型 必填 说明
element T 指定元素。

返回值:

类型 说明
boolean 返回true表示包含指定元素,否则返回false。

使用方式: 

let arrayList: ArrayList<string> = new ArrayList();
arrayList.add("squirrel");
let result: boolean = arrayList.has("squirrel");

5. sort

sort(comparator?: (firstValue: T, secondValue: T) => number): void

对ArrayList中的元素排序。

参数:

参数名 类型 必填 说明
comparator function 回调函数,默认为升序排序的回调函数。

comparator的参数说明:

参数名 类型 必填 说明
firstValue T 前一项元素。
secondValue T 后一项元素。

 使用方式:

let arrayList: ArrayList<number> = new ArrayList();
arrayList.add(2);
arrayList.add(4);
arrayList.add(5);
arrayList.add(4);
arrayList.sort((a: number, b: number) => a - b);
arrayList.sort((a: number, b: number) => b - a);
arrayList.sort();

6. remove

remove(element: T): boolean

删除查找到的第一个指定的元素。

参数:

参数名 类型 必填 说明
element T 指定元素。

返回值:

类型 说明
boolean 删除成功返回true,失败返回false。

使用方式: 

let arrayList: ArrayList<number> = new ArrayList();
arrayList.add(2);
arrayList.add(4);
arrayList.add(5);
arrayList.add(4);
let result: boolean = arrayList.remove(2);

 如需要其他方法 请参考官方文档

制作不易 点个关注再走吧。°(°¯᷄◠¯᷅°)°。


网站公告

今日签到

点亮在社区的每一天
去签到