一、List
1.创建list的方法
//方法1
var l1 = ["张三", 20, true];
var l1 = <String>["张三", '20', 'true'];
//方法2
List li = ["张三", 20, true];
List li = <String>["张三", '20', 'true'];
//方法3
var li = List.filled(2, "");
2.List里面常用的属性和方法
常用属性:
length 长度
reversed 数组翻转(倒序排序)
isEmpty 是否为空
isNotEmpty 是否不为空
常用方法:
add 增加(增加一个)==>add('新值')
addAll 拼接数组(增加多个,传入数组)==>addAll(['值1','值2','值3'])
indexOf 查找 传入具体值==>indexOf('具体值'),有值返回索引,无值返回-1
remove 删除 传入具体值==>remove('具体值')
removeAt 删除 传入索引值==>removeAt(index)
fillRange 修改 ==> fillRange(开始位置(index1),结束位置(index2),修改值)
insert(index,value); 指定位置插入
insertAll(index,list) 指定位置插入List
toList() 其他类型转换成List
join() List转换成字符串
split() 字符串转化成List
循环方法:
forEach
map
where
any
every
二、Set
Set是没有顺序且不能重复的集合,所以不能通过索引去获取值,它最主要的功能就是去重。实例如下:
var name = new Set();
name.add('小明');
name.add('小红');
name.add('小明');
print(name.toList());
可以看出,向数组中添加了两个小明,但是打印结果只有一个,因为Dart对数组进行了去重的操作。
我们经常使用的去重方法是通过循环,Dart中就可以通过Set来实现数组去重,如下:
var student = ['小明', '小红', '小兰', '小明'];
var students = new Set();
students.addAll(student);
print(students.toList());
感觉这样还是有点麻烦,当然Dart提供了更简单的方法toSet(),如下:
var student = ['小明', '小红', '小兰', '小明'];
print(student.toSet().toList()); //去重后,转换为List
三、Map
映射(Maps)类似Json对象的形式, 是无序的键值对:
常用属性:
keys 获取所有的key值
values 获取所有的value值
isEmpty 是否为空
isNotEmpty 是否不为空
常用方法:
remove(key) 删除指定key的数据
addAll({...}) 合并映射 给映射内增加属性
containsValue 查看映射内的值 返回true/false
循环方法:
forEach
map
where
any
every
Maps声明方法可以查看本专栏第二篇笔记:juejin.cn/post/706261…
四、循环语句
这几种循环方法,在List、Set、Map中都可以使用
基本循环方法:
for
for in ==>for(var item in List数组){}
while
do while
其他循环方法:
forEach
map
where
any
every
实例如下:
var name = ['小明', '小红', '小兰', '小明'];
//forEach
name.forEach((e) {
print(e);
});
//map 修改数据,返回新数组
var newName = name.map((e) {
return 'name: $e';
});
print(newName);
//where 将满足条件的结果返回新集合
var list = [1, 2, 3, 4, 5, 6];
var num = list.where((e) {
return e > 3;
});
print(num);
//any 判断集合中是否有满足条件的数据(只要有一个满足就可以),有则返回true,没有就返回false,
var list2 = [1, 2, 3, 4, 5, 6];
var num2 = list.any((e) {
return e > 6;
});
print(num2);
//every 判断集合中每一个数据是都满足条件(所有数据都要满足),满足则返回true,否则就返回false,
var list3 = [1, 2, 3, 4, 5, 6];
var num3 = list.every((e) {
return e > 0;
});
print(num3);