List集合
大多数编程语言中集合是数组或者一组有序的对象,在dart中,数组是list对象
dart中,list字面量跟js中数组字面量很像
var list = [1,2,3];
List ls = [1,'a',true];
list可以通过泛型指定存储元素的类型
List<int> list = new List(); //list只能存放int类型
list.add(1); // true
list.add("2"); // Error
list的索引从0开始,0是第一个元素的索引
var list = [1,2,3,4];
list[0] == 1; //true
print(list[1]); //2
List的常见属性
- first:返回集合的第一个元素E
- last:返回集合的最后一个元素E
- length:返回集合的长度int
-
reversed:将集合反转,不会改变原集合的结构,返回一个新的集合
-
isEmpty:返回一个布尔值,集合为空返回true,不为空返回false
var list = [1, 2, 3, 'qwe']; var list2 = list.reversed; // ['qwe',3,2,1] print(list.first); //1 print(list.last); //'qwe' print(list.length); //4 print(list.isEmpty); //false print(list2.first); // 'qwe'
List常用方法
- add(E e) :往集合末尾添加一个元素 返回值:void
- addAll(Iterable iterable) :将迭代对象的所有元素添加到当前集合末尾 返回值:void
- asMap() :将当前list集合转换成map集合,索引值为键,对应元素为值 返回值:map对象
- clear() :清除当前集合的所有元素 返回值: void
- fillRange(int start,int end,[E e]):当前集合第start(包括start)到第end(不包括end)元素以e来填充,如果第三个参数不传,则以null来填充,返回一个新的list 返回值: List
- getRange(int start,int end):获取当前集合第start到第end的元素,并返回一个新的List 返回值:List
- indexOf(E e,[int start = 0]):从start位开始查找,查找当前集合是否存在e元素,如果存在,则返回第一个找到的位置,如果不存在则返回-1 返回值 int
- insert(int index,E e):在当前集合的index位置插入e元素 返回值:void
- inserAll(int index,Iterable iterable):在当前集合的index位置插入可迭代对象iterable 返回值:void
- lastIndexOf(E e,int start):从start位置开始查找,返回当前集合中e元素最后出现的位置 返回值:void
- remove(Object value):移除当前集合中第一个value元素,移除成功返回true,否则返回false 返回值:bool
- removeAt(int index):移除当前集合中index位置的元素 返回值:bool
- .......(list方法很多,需要用到可查询api文档)
var list = [1,2,2,3,4];
list.add(5); // [1,2,2,3,4,5]
var arr = [6];
list.addAll(arr); //[1,2,2,3,4,5,6]
var map = list.asMap(); //{0:1,1:2,2:2,3:3,4:4,5:5,6:6}
print(list.indexOf(2)); //1