官网文档介绍:
Perhaps the most common collection in nearly every programming language is the array, or ordered group of objects. In Dart, arrays are List objects, so most people just call them lists.
翻译:
也许几乎每种编程语言中最常见的集合都是数组或有序对象组。在Dart中,数组是列表对象,所以大多数人只是将它们称为列表
在dart中list集合和我们Java中的不一样,在Java中的list集合只存储一种类型 ,但是在dart中不一样
void main(){
var list = [1,2,'aa',true];
print(list);
}
取list中的某一个值是
list[]
void main(){
var list = [1,2,'aa',true];
print(list[2]);
}
修改某一个list中的值
void main(){
var list = [1,2,'aa',true];
print(list[2]);
list[2] = 3;
print(list[2]);
}
创建list对象还可以使用
void main(){
var list = new List(3);
list[0] = 0;
list[1] = 1;
list[2] = "aaa";
print(list);
}
如果List列表只存储一种类型的话 可以使用类似Java中的范型
void main(){
var list = new List<int>(3);
list[0] = 0;
list[1] = 1;
list[2] = 2;
print(list);
}
可以看到<>里面的int是放的是基本类型
如果一个list 定义后不能被修改的话 使用const
void main(){
var constantList = const [1, 2, 3];
print(constantList);
}
dart2.3后引入了扩展操作符. 来自官方文档
Dart 2.3 introduced the spread operator (...) and the null-aware spread operator (...?), which provide a concise way to insert multiple elements into a collection
翻译:
Dart 2.3引入了扩展运算符(…)和感知空的扩展运算符(…?),它们提供了一种将多个元素插入集合的简洁方法
var list = [1, 2, 3];
var list2 = [0, ...list];
assert(list2.length == 4);
var list;
var list2 = [0, ...?list];
assert(list2.length == 1);
由于我使用的是2.1版本 所以就不演示了
list列表常用的方法
1:add()
添加一个元素
2:添加一个集合
3:removeAt()删除某个元素根据下标。或者删除集合中的某个值
4: insert()把某个值添加到某个位置
5:List转Map
下标作为key。对应下标值作为value
作为List集合排序功能是必不可少的
void main(){
var list =new List();
list.add(1);
list.add(2);
list.add(3);
list.insert(1, 4);
for(var i=0;i<list.length;i++){
print(i);
}
}
还有另外一种方式:
void main(){
var list =new List();
list.add(1);
list.add(2);
list.add(3);
for (var i in list){
print(i);
}
}
还可以使用fo rEach()进行遍历:
void main(){
var list =new List();
list.add(1);
list.add(2);
list.add(3);
list.forEach((i) => print('$i'));
}