编程中最常使用的集合是数组。Dart以列表(List)对象的形式表示数组。列表(List)只是一组有序的对象。Dart的core库提供了List类,可以创建和操作列表。
Dart中列表的逻辑表示如下 -

- test_list- 是引用集合的标识符。
- 该列表包含值:12,13和14。保存这些值的存储块称为元素。
- 列表中的每个元素都由一个索引唯一编号标识。索引从零开始并向上扩展到n-1,其中n是List中元素的总数。索引也称为下标。
列表可分为两种 -
- 固定长度列表
- 可增长列表
现在让我们详细地讨论这两种类型的列表。
固定长度列表
固定长度列表的长度不能在运行时更改。创建固定长度列表的语法如下所示 -
第1步 - 声明列表
声明固定长度列表的语法如下 -
var list_name = new List(initial_size)
上面的语法创建了指定大小的列表。列表不能在运行时增长或缩小。任何调整列表大小的尝试都将导致异常。
第2步 - 初始化列表
初始化列表的语法如下所示 -
lst_name[index] = value;
示例
void main() { 
   var lst = new List(3); 
   lst[0] = 12; 
   lst[1] = 13; 
   lst[2] = 11; 
   print(lst); 
}
执行上面示例代码,得到以下结果 -
[12, 13, 11]
可增长列表
可增长列表的长度可以在运行时更改。声明和初始化可增长列表的语法如下所示 -
第1步 - 声明列表
var list_name = [val1,val2,val3]   
// --- 创建包含指定值的列表
// 或者
var list_name = new List() 
// --- 创建一个大小为零的列表
第2步 - 初始化列表
索引/子脚本用于引用应该用值填充的元素。初始化列表的语法如下所示 -
list_name[index] = value;
示例
以下示例显示如何创建3个元素的列表。
void main() { 
   var num_list = [1,2,3]; 
   print(num_list); 
}
执行上面示例代码,得到以下结果 -
[1, 2, 3]
示例
以下示例使用List()空构造函数创建零长度列表。List类中的add()方法/函数用于动态地向列表中添加元素。
void main() { 
   var lst = new List(); 
   lst.add(12); 
   lst.add(13); 
   print(lst); 
}
它将产生以下输出 -
[12, 13]
列表属性
下表列出了dart:core库中List类的一些常用属性。
| 编号 | 属性 | 描述 | 
|---|---|---|
| 1 | first | 返回第一个元素。 | 
| 2 | isEmpty | 如果集合没有元素,则返回 true。 | 
| 3 | isNotEmpty | 如果集合至少包含一个元素,则返回 true。 | 
| 4 | length | 返回列表的大小(元素数量)。 | 
| 5 | last | 返回列表中的最后一个元素。 | 
| 6 | reversed | 以相反的顺序返回包含列表值的可迭代对象。 | 
| 7 | single | 检查列表是否只有一个元素并返回它。 | 
列表基本操作
下面我们将讨论如何对列表执行一些基本操作,例如 -
| 编号 | 操作 | 描述 | 
|---|---|---|
| 1 | 将元素插入列表 | 可变列表可以在运行时动态增长。 List.add()函数将指定的值附加到列表的末尾并返回修改后的List对象。 | 
| 2 | 更新列表 | Dart中的列表可以通过以下方式更新 - 更新索引和使用List.replaceRange()函数 | 
| 3 | 删除列表元素 | dart:core库中List类支持用于删除List中的项目。 | 
