一、两种定义方式
1.静态
var list=['a','b','c'];
2.动态
var list=new List();
list.add('a');
list.add('b');
list.add('c');
二、属性和方法
1.属性
常用属性:
1.length 长度
2.reversed 翻转
3.isEmpty 是否为空
4.isNotEmpty 是否不为空
这里值得注意的是,翻转过后的数组,要用toList方法,才能成为一个新的数组(该方法后面会将)。
List list=['a','b','c'];
List list1=list.reversed;
print(list); //结果为:(c,b,a)
print(list.toList); //结果为:[c,b,a]
2.方法
代码如下(示例):
常用属性:
1.add 增加
2.addAll 拼接数组
3.indexOf 查找 传入具体值
4.remove 删除 传入具体值
5.removeAt 删除 传入索引值
6.fillRange 修改
7.insert(index,value) 指定位置插入
8.insertAll(index,value) 指定位置插入数组
9.toList 其他类型转换为List类型
代码实现

注:
惰性的删除
我们重新定义一个数组。
var myList=['a','b','c','b'];
//用传入确定值的函数删除字符 b。
myList.remove('b');
print(myList);
思考?打印的list
最后的答案是:a,c,b
我们不难知道,该函数删除有惰性,比如有多个重复值时,只删除第一个。
修改和插入
这里要注意的是,传入函数的参数(确定位置)是在哪,我图中画的差不多挺好理解了,可以理解为就是数值间的空位。
三、数组的遍历
1.普通遍历

2.forEach函数

注:forEach括号内是一个函数体,其中value是自己取名的参数(可以用其他词代替)。参数实际指的时数组中的值。
3.map函数

思考?
这里我们假设直接map换成forEach行吗(其他不变)?
结果时会报错,因为forEach函数的返回类型为void(就是没有返回值)
4.where函数

打印的结果:[7,8,9]
思考?
这里将函数where改成map又是怎样的打印情况?
打印结果:[false, false,false,true, true, true]。
注:前面说到,map函数返回的是表达式的结果
4.any和every
这个就来的直白了。
1.any任一满足,就返回true,反则false。
2.every全部满足,才返回true,反则false。
本文详细介绍了Dart语言中数组的两种定义方式:静态定义与动态定义,并通过实例讲解了数组的各种属性和方法,如length、reversed、add等。此外,还探讨了数组的遍历方法,包括普通遍历、forEach、map、where等函数的使用方法及其区别。
1万+

被折叠的 条评论
为什么被折叠?



