自学内容网 自学内容网

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

List底层通过单向链表实现,每个节点有一个指向后一个元素的引用。当需要查询元素时,必须从头遍历,插入、删除效率高,查询效率低。List允许元素为null。

List和LinkedList相比,LinkedList是双向链表,可以快速地在头尾进行增删,而List是单向链表,无法双向操作。

注意

在List中使用[index]的方式虽然能够获取对应位置的元素,但这会导致未定义结果。推荐使用get()方法。

推荐使用场景: 当需要频繁的插入删除元素,并且需要使用单向链表时,推荐使用List高效操作。

 HarmonyOS 线性容器List  的好处 

一、动态调整与高效存储

  • 动态扩容:List能够根据实际需要动态调整其容量,这意味着在添加新元素时,List能够自动扩展其存储空间,无需手动进行容量管理。
  • 空间利用:通过动态扩容策略,List能够更有效地利用存储空间,避免空间浪费。

二、灵活的访问与操作

  • 随机访问:List提供了高效的随机访问能力,允许通过索引快速定位并访问元素。这对于需要频繁读取集合中元素的场景非常有用。
  • 增删操作:虽然List的增删操作可能会影响数组内其他元素的移动,但在特定场景下(如需要频繁插入和删除元素时),List仍然能够通过其灵活的插入和删除方法满足需求。

三、丰富的功能与方法

  • 多种操作方法:List提供了多种操作方法,如添加、插入、删除、查找等,这些方法使得对集合的管理和操作变得更加便捷。
  • 泛型支持:List支持泛型,这意味着可以指定集合中元素的类型,从而提高代码的安全性和可读性。

四、应用场景广泛

  • 数据结构基础:List作为数据结构的基础,在HarmonyOS开发中被广泛应用。无论是存储简单数据类型还是复杂对象,List都能提供有效的支持。
  • UI组件配合:在HarmonyOS的UI开发中,List常常与列表组件(如ListItem、ListItemGroup等)配合使用,以显示结构化、可滚动的信息。这使得List在构建用户界面时具有极高的实用价值。

List

1.constructor

2.add

3.insert

4.has

5.get

6.remove

导入模块

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

1.constructor

constructor()

List的构造函数。

使用方式:

let list: List<string | number | boolean | object> = new List();

2.add

add(element: T): boolean

在List尾部插入元素。

参数:

参数名类型必填说明
elementT添加进去的元素。

返回值:

类型说明
boolean插入成功返回true,否则返回false。

使用方式:

let list: List<string | number | boolean | object> = new List();
let result1 = list.add("a");
let result2 = list.add(1);
let b = [1, 2, 3];
let result3 = list.add(b);
class C {
  name: string = ''
  age: string = ''
}
let c: C = {name : "Dylan", age : "13"};
let result4 = list.add(c);
let result5 = list.add(false);

3.insert

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

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

参数:

参数名类型必填说明
elementT插入元素。
indexnumber插入的位置索引。需要小于等于int32_max即2147483647。

使用方式:

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

4.has

has(element: T): boolean

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

参数:

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

返回值:

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

使用方式:

let list: List<string> = new List();
list.add("squirrel");
let result = list.has("squirrel");

5.get

get(index: number): T

根据下标获取List中的元素。

参数:

参数名类型必填说明
indexnumber要查找的下标。需要小于等于int32_max即2147483647。

返回值:

类型说明
T根据下标查找到的元素。

使用方式:

let list: List<number> = new List();
list.add(2);
list.add(4);
list.add(5);
list.add(2);
list.add(1);
list.add(2);
list.add(4);
let result = list.get(2);

6.remove

emove(element: T): boolean

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

参数:

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

返回值:

类型说明
boolean删除成功返回true,否则返回false。

使用方式:

let list: List<number> = new List();
list.add(2);
list.add(4);
list.add(5);
list.add(4);
let result = list.remove(2);

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

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


原文地址:https://blog.csdn.net/m0_53992752/article/details/144379255

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!