Flutter数组基础语法
数组定义
1.直接赋值
混合类型 dynamic
var list = [];
字符串类型
var list = ['string'];
var l2 = <String>['111','222']
2.定义固定长度数组
var list = List.filled(2, ' '); // 字符串数组[' ',' ']
var list2 = List<String>.filled(2, ''); // 字符串数组
var list3 = List<dynamic>.filled(2, '');// 混合类型固定长度数组
Dart具有类型推导能力,类型可以省略
常用属性
list.length 长度list.reversed 翻转list.isEmpty 是否为空list.isNotEmpty 是否不为空list.first 获取第一个元素list.last 获取最后一个元素
常用方法
增加
list.add(value) 增加list.addAll(iterable) 拼接数组list.insert(index, value) 插入list.insertAll(index, iterable) 插入数组
删除
list.remove(value) 删除 传入具体值list.removeAt(index) 删除 传入索引值list.removeLast(); 删除最后一位元素list.removeRange(start, end); 范围删除 传入开始结束区间索引值list.removeWhere((v) => 判断条件); 删除符合函数返回值为true的元素list.clear(); 删除所有元素
更改
list.setRange(start, end, iterable, skipCount) 修改区间为指定数组的值skipCount 默认为0,表示从第几位开始选取指定数组的值,使用概率较低
list.setAll(index, iterable); 修改指定索引后的值list.fillRange(start,end, value) 修改:将指定区间替换成指定值list.replaceRange(start, end, [value]); 将区间值替换为数组内的值list.toLIst() 其他类型转换成Listlist.join() LIst转换为字符串
查找
list.indexOf(value,index) 查找 传入具体值 返回值为索引,不存在返回-1list.lastIndexOf(value,index) 倒叙查找 传入具体值 返回值为索引,不存在返回-1list.sublist(start, end) ; 查找区间的值,返回数组[value,value]list.getRange(start, end); 查找区间的值,返回迭代器(value,value)list.any((v) => 判断条件); 判断数组是否有符合条件的值,返回布尔值list.every((v) => 判断条件); 判断数组是否都符合条件,返回布尔值list.contains(value); 查找数组是否包含值,返回布尔值list.firstWhere((v) => 判断条件); 获取满足条件的第一个元素list.lastWhere((v) => 判断条件); 获取满足条件的最后一个元素list.indexWhere((v) => 判断条件, index); 从指定位置开始,获取满足条件的第一个元素索引list.lastIndexWhere((v) => 判断条件, index); 从指定位置开始,获取满足条件的最后一个元素索引list.singleWhere((v) => 判断条件, orElse: () {错误捕获}); 查找是否存在满足条件的唯一值,存在返回这个元素,不存在执行第二个函数
转为字符串-join
list.join('字符'); 将数组用指定字符拼接成字符串
去重-toSet
list.toSet(); 转为set类型
遍历-forEach
list.forEach((v) { })
Map
按指定条件返回Iterable
list.map((v) { return 指定条件})
累加器-reduce
list.reduce((value,element) { return 累加条件 })
排序-sort
list.sort((a,b) { return 排序条件})
感谢阅读,有需要的点点收藏关注,如有错漏敬请斧正。