5.Dart 集合类型List Set Map详解 以及循环语句 forEach map where any every
1.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
every
1)List里面的属性
void main(){ //List里面的属性: List myList=['香蕉','苹果','西瓜']; print(myList.length); print(myList.isEmpty); print(myList.isNotEmpty); print(myList.reversed); //对列表倒序排序,输出为元组 var newMyList=myList.reversed.toList(); print(newMyList); }
2)List里面的方法:
void main(){ List myList=['香蕉','苹果','西瓜']; myList.add('桃子'); //增加数据 增加一个 myList.addAll(['桃子','葡萄']); //拼接数组 print(myList); print(myList.indexOf('苹x果')); //indexOf查找数据 查找不到返回-1 查找到返回索引值 myList.remove('西瓜'); myList.removeAt(1); print(myList); }
void main(){ List myList=['香蕉','苹果','西瓜']; myList.fillRange(1, 3,'aaa'); //修改 print(myList) }
void main(){ List myList=['香蕉','苹果','西瓜']; myList.insert(1,'aaa'); //插入 一个 myList.insertAll(1, ['aaa','bbb']); //插入 多个 print(myList); }
void main(){ List myList=['香蕉','苹果','西瓜']; var str=myList.join('-'); //list转换成字符串 print(str); print(str is String); //true }
void main(){ var str='香蕉-苹果-西瓜'; var list=str.split('-'); //字符串转换成List print(list); print(list is List); //Ture }
2.Set
void main(){ var s=new Set(); s.add('香蕉'); s.add('苹果'); s.add('苹果'); print(s); //{香蕉, 苹果} print(s.toList()); }
void main(){ List myList=['香蕉','苹果','西瓜','香蕉','苹果','香蕉','苹果']; var s=new Set(); s.addAll(myList); print(s); print(s.toList()); }
3.Maps
映射(Maps)是无序的键值对:
常用属性:
keys 获取所有的key值
values 获取所有的value值
isEmpty 是否为空
isNotEmpty 是否不为空
常用方法:
remove(key) 删除指定key的数据
addAll({...}) 合并映射 给映射内增加属性
containsValue 查看映射内的值 返回true/false
forEach
map
where
any
every
1).常用属性
void main(){ Map person={ "name":"张三", "age":20, "sex":"男" }; print(person.keys.toList()); //[name, age, sex] print(person.values.toList()); //[张三, 20, 男] print(person.isEmpty); //false print(person.isNotEmpty); //true }
2).常用方法
void main(){ Map person={ "name":"张三", "age":20, "sex":"男" }; person.addAll({ "work":['敲代码','送外卖'], "height":160 }); print(person); person.remove("sex"); print(person); print(person.containsValue('张三')); } }
3.forEach map where any every
1)forEach
循环元素
void main(){ List myList=['香蕉','苹果','西瓜']; for(var i=0;i<myList.length;i++){ print(myList[i]); } }
void main(){ List myList=['香蕉','苹果','西瓜']; for(var item in myList){ print(item); } }
void main(){ List myList=['香蕉','苹果','西瓜']; // myList.forEach((key,value){ // print('$key---$value'); // }); myList.forEach((value){ print("$value"); }); }
2)map
修改数组的数据 map
void main(){ List myList=[1,3,4]; List newList=new List(); for(var i=0;i<myList.length;i++){ newList.add(myList[i]*2); } print(newList); //[2, 6, 8] List myList=[1,3,4]; var newList=myList.map((value){ return value*2; }); print(newList.toList()); //[2, 6, 8] }
3)where
查找数组
void main(){ List myList=[1,3,4,5,7,8,9]; var newList=myList.where((value){ return value>5; }); print(newList.toList()); //[7, 8, 9] }
4)any
只要有满足条件就返回true
void main(){ List myList=[1,3,4,5,7,8,9]; var f=myList.any((value){ //只要集合里面有满足条件的就返回true return value>5; }); print(f); //true }
5)every
每一个都满足条件返回true 否则返回false
void main(){ List myList=[1,3,4,5,7,8,9]; var f=myList.every((value){ //每一个都满足条件返回true 否则返回false return value>5; }); print(f); //false }
针对Set
void main(){ var s=new Set(); s.addAll([1,222,333]); s.forEach((value)=>print(value)); }
针对map
void main(){ Map person={ "name":"张三", "age":20 }; person.forEach((key,value){ print("$key---$value"); }); }
原文地址:https://www.cnblogs.com/The-Chao/p/11906198.html
- Mycat 读写分离 数据库分库分表 中间件 安装部署,及简单使用
- 50道Java线程题
- Jrebel6.3.3破解,配置图文教程
- Spring Cloud(十一)高可用的分布式配置中心 Spring Cloud Bus 消息总线集成(RabbitMQ)
- Keras中带LSTM的多变量时间序列预测
- Spring Cloud(十)高可用的分布式配置中心 Spring Cloud Config 中使用 Refresh
- Hibernate 的性能优化的时候碰到了"抓取策略",有四种
- 基于 Spring Cloud 完整的微服务架构实战
- maven build时报错Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test
- Spring Cloud(九)高可用的分布式配置中心 Spring Cloud Config 集成 Eureka 服务
- Spring Cloud(八)高可用的分布式配置中心 Spring Cloud Config
- 用Raspberry Pi Zero打造「即插即用」的Web服务器
- Spring Cloud(七)服务网关 Zuul Filter 使用
- 基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- HTML标签
- 给IMX6ULL编译鸿蒙Liteos-a
- 鸿蒙源码下载并编译
- g2o、Eigen、Mat矩阵类型转换
- 相见恨晚!OLAP数仓基础入门大全
- Activiti7 流程变量(UEL-Value方式)
- 给IE9及其以下等不支持classList属性的浏览器,添加classList属性
- Docker使用手册 嵌入式Linux环境搭建
- Activiti7 流程部署
- Activiti7 启动流程实例
- linux文本处理工具及正则表达式
- linux目录结构及文件管理
- centos7-httpd虚拟主机
- k8s1.13.0二进制部署-node节点(四)
- k8s1.13.0二进制部署-flannel网络(二)