Dart的循环表达式
for循环
1
2
3
4for (int i = 1; i <= 1000; i++) { print(i); }
也可以写成:
1
2
3
4for (var i = 1; i <= 10; i++) { print(i); }
对于List
的遍历我们可以这样做:
1
2
3
4
5var list = <String>["CJ", "GTA", "GTI"]; for (var element in list) { print(element); }
对于Map的迭代我们也可以使用for循环语句:
1
2
3
4
5
6
7
8
9
10var person = { "name": "如初", "age": 28, "work": ["程序员", "iOS开发"] }; person.forEach((key, value) { print(value); });
while语句
while有两种语句格式:
1
2
3
4
5
6
7
8
9while(表达式/循环条件) { } do { 语句/循环体 } while(表达式/循环条件);
break和continue语句
break语句功能:
-
在switch语句中使流程跳出switch结构。
-
在循环语句中使流程跳出当前循环,遇到break循环终止,后面代码也不会执行
需要强调的是:
-
如果在循环中已经执行了break语句,就不会执行循环体中位于break后的语句。
-
在多层循环中,一个break语句只能向外跳出一层
break可以用在switch case中 也可以用在for循环和while循环中。
continue语句的功能:
只能在循环语句中使用,使本次循环结束,即跳过循环体中下面尚未执行的语句,接着进行下次的是否执行循环的判断。
continue可以用在for循环以及while循环中,但是不建议用在while循环中,不小心容易死循环。
List常用属性和方法
常用属性
-
length 长度
-
reversed 翻转
-
isEmpty 是否为空
-
isNotEmpty 是否不为空
常用方法
-
add 增加
-
addAll 拼接数组
-
indexOf 查找 传入具体值
-
remove 删除 传入具体值
-
removeAt 删除 传入索引值
-
fillRange 修改
-
insert(index, value) 指定位置插入
-
insertAll(index, list) 指定位置插入List
-
toList() 其他类型转换成List
-
join() List转换成字符串
-
split() 字符串转化成List
-
forEach
-
map
-
where
-
any
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22var list = ['张三','李四','王五',"小明"]; print(list.length); print(list.isEmpty); print(list.isNotEmpty); print(list.reversed); // 对列表倒序排序 print(list.indexOf('李四')); // indexOf查找数据 查找不到返回-1 查找到返回索引值 list.remove('王五'); list.removeAt(2); list.fillRange(1, 2,'a'); // 修改 1是开始的位置 2二是结束的位置 print(list); list.insert(1,'a'); print(list); list.insertAll(1, ['a','b']); // 插入多个
Set
Set的最主要的功能就是去除数组重复内容,它是没有顺序且不能重复的集合,所以不能通过索引去获取值。
1
2
3
4
5
6
7var s = new Set(); s.add('A'); s.add('B'); s.add('B'); print(s); //{A, B}
当add相同内容时候无法添加进去的。
Set可以通过add方法添加一个List,并清除值相同的元素:
1
2
3
4
5
6var list = ['香蕉', '苹果', '西瓜', '香蕉', '苹果', '香蕉', '苹果']; var s = new Set(); s.addAll(list); print(s); print(s.toList());
Map常用属性和方法
Map是无序的键值对,它的常用属性主要有以下:
常用属性
-
keys 获取所有的key值
-
values 获取所有的value值
-
isEmpty 是否为空
-
isNotEmpty 是否不为空
常用方法
-
remove(key) 删除指定key的数据
-
addAll({…}) 合并映射 给映射内增加属性
-
containsValue 查看映射内的值 返回true/false
-
forEach
-
map
-
where
-
any
-
every
map转换
1
2
3
4
5
6
7List list = [1, 3, 4]; // map转换,根据返回值返回新的元素列表 var newList = list.map((value) { return value * 2; }); print(newList.toList());
where:获取符合条件的元素
1
2
3
4
5
6
7
8List list = [1, 3, 4, 5, 7, 8, 9]; var newList = list.where((value){ return value > 5; }); print(newList.toList());
any:是否有符合条件的元素
1
2
3
4
5
6
7List list = [1, 3, 4, 5, 7, 8, 9]; // 只要集合里面有满足条件的就返回true var isContain = list.any((value) { return value > 5; }); print(isContain);
every:需要每一个都满足条件
1
2
3
4
5
6
7
8List myList = [1, 3, 4, 5, 7, 8, 9]; // 每一个都满足条件返回true 否则返回false var flag = myList.every((value){ return value > 5; }); print(flag);
Set使用forEach遍历
1
2
3
4
5
6var s=new Set(); s.addAll([11,22,33]); s.forEach((value) => print(value));
Map使用forEach遍历
1
2
3
4
5
6
7
8
9Map person = { "name": "张三", "age": 28 }; person.forEach((key, value){ print("$key -> $value"); });
最后
以上就是高高唇膏最近收集整理的关于【Dart】集合梳理的全部内容,更多相关【Dart】集合梳理内容请搜索靠谱客的其他文章。
发表评论 取消回复