Dart 列表

2025年3月17日 | 阅读 8 分钟

Dart 列表类似于数组,它是对象的有序集合。数组是任何其他编程语言中最流行和常用的集合。Dart 列表看起来像 JavaScript 数组字面量。声明列表的语法如下所示。

Dart 列表通过将所有元素存储在方括号 ([]) 中并用逗号 (,) 分隔来定义。

让我们理解一下列表的图形表示 -

Dart Lists

list1 - 它是指列表对象的列表变量

索引 - 每个元素都有一个索引号,用于表示元素在列表中的位置。索引号用于访问列表中的特定元素,例如 list_name[index]。列表索引从0开始,到长度-1结束,其中长度表示列表中存在的元素数量。例如 - 上述列表的长度为 4。

元素 - 列表元素是指存储在给定列表中的实际值或 dart 对象。

列表的类型

Dart 列表可以分为两种类型 -

  • 固定长度列表
  • 可增长列表

固定长度列表

固定长度列表使用指定的长度定义。我们不能在运行时更改大小。语法如下所示。

语法 - 创建固定大小的列表

上述语法用于创建固定大小的列表。我们不能在运行时添加或删除元素。如果尝试修改其大小,它将抛出一个异常。

初始化固定大小列表元素的语法如下所示。

语法 - 初始化固定大小的列表元素

让我们理解下面的例子。

示例 -

输出

[10, 11, 12, 13, 14]

解释 -

在上面的示例中,我们创建了一个名为 list1 的变量,该变量指向固定大小的列表。列表的大小是五个,我们插入了与其索引位置对应的元素,其中第 0 个索引保存 10,第 1 个索引保存 12,依此类推。

可增长列表

声明时未指定大小的列表称为可增长列表。可增长列表的大小可以在运行时修改。声明可增长列表的语法如下所示。

语法 - 声明一个列表

语法 - 初始化一个列表

考虑以下示例 -

示例 - 1

输出

[10, 11, 12, 13, 14, 15]

在下面的示例中,我们使用空列表或 List() 构造函数创建一个列表。 add() 方法用于在给定列表中动态添加元素。

示例 - 2

输出

[10, 11, 12, 13]

列表属性

以下是列表的属性。

属性描述
first它返回第一个元素的情况。
isEmpty如果列表为空,则返回 true。
isNotEmpty如果列表至少有一个元素,则返回 true。
length它返回列表的长度。
last它返回列表的最后一个元素。
reversed它以相反的顺序返回列表。
单精度它检查列表是否只有一个元素并返回它。

将元素插入到列表中

Dart 提供了四种用于将元素插入到列表中的方法。这些方法如下所示。

  • add()
  • addAll()
  • insert()
  • insertAll()

add() 方法

此方法用于在列表的末尾插入指定的值。它一次只能添加一个元素,并返回修改后的列表对象。让我们理解一下以下示例 -

语法 -

示例 -

输出

[1, 3, 5, 7, 9]
[1, 3, 5, 7, 9, 11]

解释 -

在上面的示例中,我们有一个名为 odd_list 的列表,它保存奇数。我们使用 add() 函数插入了一个新元素 11。 add() 函数将元素附加到列表的末尾并返回修改后的列表。

addAll() 方法

此方法用于将多个值插入到给定的列表中。每个值用逗号分隔并用方括号 ([]) 括起来。语法如下所示。

语法 -

让我们理解以下示例 -

输出

[1, 3, 5, 7, 9]
[1, 3, 5, 7, 9, 11, 13, 14]

解释 -

在上面的示例中,我们不需要多次调用 add() 函数。 addAll() 一次附加了多个值并返回修改后的列表对象。

insert() 方法

insert() 方法提供了在指定索引位置插入元素的功能。我们可以为要插入到列表中的值指定索引位置。语法如下所示。

让我们理解以下示例 -

输出

[3, 4, 2, 5]
[3, 4, 10, 2, 5]

解释 -

在上面的示例中,我们有一个随机数的列表。我们调用了 insert() 函数,并将索引为 2nd 的值 10 作为参数传递。它将值附加到第 2 个索引并返回修改后的列表对象。

insertAll() 方法

insertAll() 函数用于在指定的索引位置插入多个值。它接受索引位置和值列表作为参数。语法如下所示。

语法 -

让我们理解以下示例 -

示例 -

输出

[3, 4, 2, 5]
[6, 7, 10, 9, 3, 4, 2, 5]

解释 -

在上面的示例中,我们使用 insertAll() 函数将值列表附加到第 0 个索引位置。它返回修改后的列表对象。

更新列表

Dart 提供了更新列表的功能,我们可以通过简单地访问其元素并为其分配一个新值来修改列表。语法如下所示。

语法 -

让我们理解以下示例 -

示例 -

输出

List before updation: [10, 15, 20, 25, 30]
List after updation: [10, 15, 20, 55, 30]

解释 -

在上面的示例中,我们访问了第 3 个索引并分配了新值 55,然后打印了结果。之前的列表使用新值 55 进行了更新。

replaceRange() - Dart 提供了 replaceRange() 函数,用于在给定的列表项范围内进行更新。它使用指定的范围更新元素的值。语法如下所示。

语法 -

让我们理解以下示例 -

示例 -

输出

List before updation: [10, 15, 20, 25, 30]
List after updation using replaceAll() function : [1, 2, 3, 4, 30]

解释 -

在上面的示例中,我们对列表调用了 replaceRange() 函数,该函数接受三个参数。我们传递了起始索引 0th、结束索引 4 和要替换的元素列表作为第三个参数。它返回包含给定范围内已替换元素的新列表。

删除列表元素

Dart 提供了以下函数来删除列表元素。

  • remove()
  • removeAt()
  • removeLast()
  • removeRange()

remove() 方法

它一次从给定的列表中删除一个元素。它接受元素作为参数。如果列表中有多个相同的元素,它将删除列表中第一次出现的指定元素。语法如下所示。

语法 -

让我们理解以下示例 -

示例 -

输出

List before remove element : [10, 15, 20, 25, 30]
List after removing element : [10, 15, 25, 30]

解释 -

在上面的示例中,我们对列表调用了 remove() 函数,并将值 20 作为参数传递。它从给定的列表中删除了 20 并返回新的修改后的列表。

removeAt() 方法

它从指定的索引位置删除一个元素并返回它。语法如下所示。

语法 -

示例 -

输出

List before remove element : [10, 11, 12, 13, 14]
List after removing element : [10, 11, 12, 14]

解释 -

在上面的示例中,我们将第 3 个索引位置作为参数传递给 removeAt() 函数,它从列表中删除了元素 13。

removeLast() 方法

removeLast() 方法用于从给定的列表中删除最后一个元素。语法如下所示。

语法-

让我们理解下面的例子。

示例 -

输出

List before removing element:[12, 34, 65, 76, 80]
List after removed element:[12, 34, 65, 76]

在上面的示例中,我们调用了 removeLast() 方法,该方法从给定的列表中删除了最后一个元素 80 并返回。

removeRange() 方法

此方法删除指定范围内的项目。它接受两个参数 - 起始索引结束索引。 它消除了指定范围之间的所有元素。语法如下所示。

语法 -

示例 -

输出

List before removing element:[12, 34, 65, 76, 80]
List after removed element:[12, 76, 80]

解释 -

在上面的示例中,我们调用了 removeRange() 方法,并将起始索引位置 1 和结束索引位置 3 作为参数传递。它删除了属于指定位置之间的所有元素。

Dart 迭代列表元素

Dart 列表可以使用 forEach 方法进行迭代。让我们看一下下面的例子。

示例 -

输出

Iterating the List Element
0: Smith
1: Peter
2: Handscomb
3: Devansh
4: Cruise

注意 - 我们将在 Dart 部分的循环中学习 forEach 方法。


下一主题Dart 集合