更通俗的叫法是
数组
声明
- 自动
dart
List<int> list = [];
list
..add(1)
..add(2)
..add(3);
print(list);
- 定长
dart
List<int> list = List.filled(3, 0);
list..add(4); // 报错
print(list);
- 生成数据
dart
List<int> list = List.generate(5, (index) => index);
print(list);
常用方法
- 添加和删除
dart
List<int> list = List.generate(5, (index) => index);
list.add(5); // 加入到数组末尾
list.addAll([6, 7]);
list.insert(2, 10); // 指定下标位置插入数据
list.insertAll(1, [8, 9]);
print(list); // [0, 8, 9, 1, 10, 2, 3, 4, 5, 6, 7]
print(list.indexOf(5)); // 查询数组元素的下标
print(list.indexWhere((e) => e > 10)); // 满足条件的数组元素在数组中第一次出现的下标
list.remove(10); // 删除指定数组元素
list.removeAt(0); // 删除指定数组下标的元素
- 区间
dart
var li = [1, 2, 3, 4, 5, 6, 'hello'];
li.fillRange(0, 3, 'world'); // 填充指定下标范围内的数据,不包括结束下标
print(li);
print(li.getRange(4, li.length)); // 获取指定下标范围内的数据,结束下标最大值为数组长度
print(li.sublist(3, 5)); // 截取指定下标范围的数据作为新数组,不包含结束下标
- 排序
dart
var li = [6, 1, 2, 3, 4, 5, 8, 6];
li.sort(); // 默认是升序,且数组元素必须是相同类型
li.sort((a, b) => b.compareTo(a)); // 降序
print(li);
si.shuffle(); // 随机乱序
- 数组拼接
dart
var l1 = [1, 2, 3];
var l2 = [4, 5, 6];
print(l1 + l2); // [1, 2, 3, 4, 5, 6]