1、声明
var list1 = List();
List list2 = List();
List list3 = List(2);
list1.add(1);
list1.add('aaa');
list1.add(true);
print(list1);
var list4 = [1,2,3]
var list5 = [2,'3',true]
List list6 = ['a',2,'b',false]
list5[1] = 2
list5[2] = 'aa'
print(list5)
var list33 = <String>["a","b"]
List<String> list7 = ['a','b','3']
List<String> list8 = new List(2)
list8[0]=('aaa')
print(list8)
2、常用属性
List<String> list13 = List();
list13.add('aaa');
list13.add('bbb');
list13.add('ccc');
print(list13.length);
print(list13.isEmpty);
print(list13.isNotEmpty);
print(list13.reversed);
print(list13.first);
print(list13.last);
3、常用方法
1、增
List<String> list9 = List();
list9.add('aaa');
list9.add('bbb');
print(list9);
List<String> list10 = List()
list10.add('aaa')
list10.add('bbb')
List<String> list11 = List()
list11.add('ccc')
list11.add('ddd')
list11.addAll(list10)
print(list11)
- 3、insert(index,element) 在指定index处插入值
List<int> list21 = List();
list21.add(0);
list21.add(1);
list21.add(2);
list21.add(3);
print(list21);
list21.insert(1, 5);
print(list21);
- 4、insertAll(index,list) 在指定index处插入list 其余顺延
List<int> list25 = List();
list25.add(0);
list25.add(1);
list25.add(2);
list25.add(3);
print(list25);
list25.insertAll(1, [5,6,7]);
print(list25);
- 5、followedBy(list) 将自身和参数内list合成一个List
List<int> list = [1,2,3]
Iterable<int> list1 = list.followedBy([4,5])
print(list1)
2、删
- remove(obj) 删除具体的元素
- removeAt(index) 删除索引位置元素
- removeLast()删除末尾元素
- removeRange(start,end) 范围删除
- removeWhere() 根据条件删除:
- clear() 清空数组
void removeWhere(bool test(E element));
List<String> list = List();
list.add("aa");
list.add("bb");
list.add("cc");
list.add("dd");
list.add("ee");
list.add("ff");
list.removeWhere((element){ return element=='dd';});
print(list);
list.removeWhere((element)=> element=='cc');
3、改
var list = [2,'3',true]
list[1] = 2
- 2、setRange(startIndex,endIndex,list) 范围修改List的值
List<String> list = List();
list.add('aaa');
list.add('bbb');
list.add('ccc');
list.add('ddd');
print(list);
List<String> list1 = List();
list1.add("111");
list1.add("222");
list1.add("333");
list1.add("444");
list1.add("555");
list1.add("666");
list.setRange(0,3, list1);
print(list);
- 3、replaceRange(start,end,list)范围替换 含头不含尾
List<String> list = List();
list.add('aaa');
list.add('bbb');
list.add('ccc');
list.add('ddd');
print(list);
list.replaceRange(0,2,["1","2","3"]);
print(list);
- 4、fillRange(start,end,value) 从start-end 每个元素用value替换
List<String> list = List();
list.add('aaa');
list.add('bbb');
list.add('ccc');
list.add('ddd');
print(list);
list.fillRange(0,2,"1");
print(list);
- 5、retainWhere(()=>(bool)) 根据条件筛选元素
List<String> list = List();
list.add('aaa');
list.add('bbb');
list.add('ccc');
list.add('ddd');
print(list);
list.retainWhere((element)=>(element=="aaa"));
print(list);
- 6、setAll(index,list) 从index开始,使用list内的元素逐个替换本list中的元素
List<String> list = List();
list.add('aaa');
list.add('bbb');
list.add('ccc');
list.add('ddd');
print(list);
list.setAll(1,["1","2"]);
print(list);
4、查
- 1、indexOf(element,[start]) 查找指定元素在list中的索引
- 2、lastIndexOf(obj,index) 从后往前查找,返回第一个的index
- 3、elementAt(index) 获取指定索引位置的元素
- 4、any((element)=>(bool)) 判断List中是否有任意一个元素符合给定的参数
List<String> list = List();
list.add('aaa');
list.add('bbb');
list.add('ccc');
list.add('ddd');
bool result = list.any((element)=>(element=="aa"));
print(result);
- 5、every((element)=>(bool)) 判断List中是否每个元素都符合参数函数
List<int> list1 = [1, 2, 3, 4, 5]
//是否每个元素都符合条件 都符合返回true 否则返回false
bool result1 = list1.every((element)=>(element%2==0))
- 6、contains(obj) List中是否存在给定的obj
- 7、firstWhere((element)=>(bool)) 返回第一个满足条件的元素(不是元素的index)
List<int> list1 = [1, 2, 3, 4, 5]
//返回满足条件的第一个元素
int result = list1.firstWhere((ele)=>(ele>3))
print(result)
- 8、lastIndexWhere((e)=>(bool)) 从后向前找 返回第一个满足条件的元素的index
- 9、lastWhere((e)=>(bool)) 从后往前找,返回第一个满足条件的元素的值(不是index)
- 10、forEach() List遍历每个元素
List<String> list = List();
list.add('aaa');
list.add('bbb');
list.add('ccc');
list.add('ddd');
list.forEach((ele){
print(ele);
});
for(var x in list){
print(x);
}
- 11、map() 遍历现有List的每个元素,并做处理,返回一个新的Iterable
List<int> list = [1,2,3]
Iterable<String> list1 = list.map((ele)=>(ele>2?"a":"b"))
print(list1)
- 12、fold(initValue,(preValue,element)=>()); 根据现有的List和给定的initValue,指定一个参数函数规则,对List每个元素做操作,并将结果返回。
List<int> list = [1,2,3]
int result = list.fold(2,(a,ele)=>(a*ele))
print(result)
- 13、reduce((a,b)=>(某种操作)) 用指定的方法对元素做连续操作,将结果返回
List<int> list = [1,2,3]
int result = list.reduce((a,b)=>(a+b))
print(result)
- 14、skip
- skip(count)越过count个元素后,开始返回list的Iterable
- skipWhile((e)=>(bool)) 根据参数函数,找到第一个不符合条件的元素,然后将其及其后的元素返回
List<int> list = [3, 4, 5, 2, 1];
Iterable<int> result = list.skip(2);
print(result);
Iterable<int> result1 = list.skipWhile((e)=>(e>2));
print(result1.toList());
- 15、take
- take(count) 从0开始取count个元素,并返回结果
- takeWhile((e)=>(bool)) 从0开始取,直至第一个不符合函数的元素,将其前面的元素都返回。
List<int> list = [3, 4, 1, 2, 5];
Iterable<int> result = list.take(2);
print(result);
Iterable<int> result1 = list.takeWhile((e)=>(e>2));
print(result1);
1、where((e)=>(bool) 根据指定参数函数筛选每个元素,符合条件的元素组成一个新的Iterable
List<int> list = [3, 4, 1, 2, 5,2,3,6];
Iterable<int> result = list.where((e)=>(e>2));
print(result);
2、singleWhere((e)=>(bool>) 找到那唯一满足条件的元素
List<int> list = [3, 4, 1, 2, 5];
int result = list.singleWhere((e)=>(e>4),orElse: ()=>(10));
print(result);
3、whereType() 从无指定泛型的List中,筛选出指定类型的数据。
List list = [3, 4, "a",true,"b",5,false];
Iterable<int> result = list.whereType();
print(result);
Iterable<String> result1 = list.whereType();
print(result1);
Iterable<bool> result2 = list.whereType();
print(result);
- 17、expand() 根据现有的List,指定一个规则,生成一个新的List
List<int> list = [1, 2, 3, 4, 5]
//通过对元素操作,返回一组指定规则的新的集合
Iterable<int> result = list.expand((element)=>([element+1,element+2]))
print(result)
- 18、toSet() 将List转为Set 去除后面重复的元素
List<int> list = [3, 4, 1, 2, 5,2,3,6]
//将list转为set,将后面重复的都去掉
Set<int> result = list.toSet()
print(result)
List<String> list = List();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
list.add("eee");
print(list);// [aaa, bbb, ccc, ddd, eee]
Map<int,String> map = list.asMap();//list转为map key为index value为list的值
print(map);//{0: aaa, 1: bbb, 2: ccc, 3: ddd, 4: eee}
List<int> list20 = List();
list20.add(2);
list20.add(3);
list20.add(1);
list20.add(0);
list20.sort((a,b)=>(a>b?1:-1));
- 21、sublist(start,[end]) 从指定index 截取list
List<int> list21 = List();
list21.add(0);
list21.add(1);
list21.add(2);
list21.add(3);
print(list21);
list21.insert(1, 5);
print(list21);
List<int> list22 = list21.sublist(1);
List<int> list23 = list21.sublist(1,3);
print(list22);
print(list23);
- 22、getRange(start,end) 从list中截取start-end范围内的数据
List<int> list28 = List()
list28.add(0)
list28.add(1)
list28.add(2)
list28.add(3)
list28.add(4)
list28.add(5)
list28.add(6)
list28.add(7)
// print(list28)
Iterable<int> list29 = list28.getRange(2, 5)
// print(list29)
- 23、join("-") 用指定的字符将List中每个元素都连接起来,返回一个字符串
List<int> list50 = [3, 4, 1, 2, 5]
String result24 = list50.join("-")
// print(result24)