flutter 中 List 和 Map 的用法
list集合
在Dart中,数组是List对象,因此大多数人只是将它们称为List。
以下是一个简单的Dart的List:
创建一个int类型的list
List list = [10, 7, 23];
print(list);// 输出结果 [10, 7, 23]
要创建一个编译时常量const的list,示例如下:
List constantList = const[10,3,15];
print(constantList);// 输出结果 [10, 3, 15]
注意事项:
- 可以直接打印list包括list的元素,list也是一个对象。但是java必须遍历才能打印list,java若直接打印list,结果是地址值。
- 和java一样list里面的元素必须保持类型一致,不一致就会报错。
- 和java一样list的角标从0开始。
Dart的list集合给我们提供了很多api,示例如下,api太多就不逐个展示了:
| 操作 | 代码 | 含义 | 输出结果 |
|---|---|---|---|
| 新增 | list.add(1);print(list); | 把数字1添加到list中,默认是添加到末尾 | [10, 7, 23, 1] |
| 移除 | list.remove(1);print(list); | 移除数字1 | [10, 7, 23] |
| 插入 | list.insert(0, 5);print(list); | 在索引为0的地方插入数字5 | [5, 10, 7, 23] |
| 查找某个索引的值 | int value = list.indexOf(10);print(value); | 查找10在list中的索引 | 1 |
| 判断元素是否包含 | bool result = list.contains(5);print(result); | 查找list中是否包含数字5 | true |
map集合
Dart中的map是将键和值相关联的对象。键和值都可以是任何类型的对象。每个键只出现一次,但您可以多次使用相同的值。
(1)创建方式:
直接声明,用{}表示,里面写key和value,每组键值对中间用逗号隔开。
Map companys = {'first': '阿里巴巴', 'second': '腾讯', 'fifth': '百度'};
print(companys);//打印结果 {first: 阿里巴巴, second: 腾讯, fifth: 百度}
先声明,再去赋值。
Map companys1 = new Map();
companys1['first'] = '阿里巴巴';
companys1['second'] = '腾讯';
companys1['fifth'] = '百度';
print(companys1);
//打印结果 {first: 阿里巴巴, second: 腾讯, fifth: 百度}
要创建一个编译时常量const的map,请在map文字之前添加const:
final fruitConstantMap = const {2: 'apple',10: 'orange',18: 'banana'};
// 打印结果{second: 腾讯, fifth: 百度, 5: 华为}
(2)添加元素。格式: 变量名[key] = value,其中key可以是不同类型。
添加一个新的元素,key为“5”,value为“华为”
companys[5] = '华为';
print(companys);//打印结果 {first: 阿里巴巴, second: 腾讯, fifth: 百度, 5: 华为}
(3)修改元素。格式:变量名[key] = value
例如:把key为first的元素对应的value改成 alibaba
companys['first'] = 'alibaba';
print(companys);//打印结果 {first: alibaba, second: 腾讯, fifth: 百度, 5: 华为}
(4)查询元素
bool mapKey = companys.containsKey('second');
bool mapValue = companys.containsValue('百度');
print(mapKey); //结果为:true
print(mapValue); //结果为:true
(5)删除元素.可以使用map的remove或者clear方法。
companys.remove('first');// 移除key为“first”的元素。
print(companys);// 打印结果{second: 腾讯, fifth: 百度, 5: 华为}
companys.clear();// 清空map集合的数据。
print(companys);// 打印结果{}
(6)关于map集合的小结:
- 创建map有两种方式。
- map的key类型不一致也不会报错。
- 添加元素的时候,会按照你添加元素的顺序逐个加入到map里面,哪怕你的key不连续。
比如key分别是 1,2,4,看起来有间隔,事实上添加到map的时候{1:value,2:value,4:value} 这种形式。 - 添加的元素的key如果是map里面某个key的英文,照样可以添加到map里面,
比如可以为3和key为three可以同时存在。 - map里面的key不能相同,但是value可以相同,value可以为空字符串或者为null。
转自:https://www.jianshu.com/p/547604a5d59a
.
flutter 中 List 和 Map 的用法的更多相关文章
- js数组中foEach和map的用法详解 jq中的$.each和$.map
数组中foEach和map的用法详解 相同点: 1.都是循环遍历数组(仅仅是数组)中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项value, ...
- python中filter,reduce,map的用法
filter的用法: 操作表list的内嵌函数'filter' 需要一个函数与一个list它用这个函数来决定哪个项应该被放入过滤结果队列中遍历list中的每一个值,输入到这个函数中如果这个函数返回Tr ...
- STL中map的用法
map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候 ...
- C++11中map的用法
最全的c++map的用法 1. map最基本的构造函数:map<string ,int>mapstring; map<int,string >mapint;map<sri ...
- ES6中Set 和 Map用法
JS中Set与Map用法 一.Set 1.基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. ...
- Flutter中Expanded组件用法
Flutter中Expanded组件用法 Expanded组件可以使Row.Column.Flex等子组件在其主轴方向上展开并填充可用空间(例如,Row在水平方向,Column在垂直方向).如果多个子 ...
- Flutter 中渐变的高级用法
Flutter 中渐变有三种: LinearGradient:线性渐变 RadialGradient:放射状渐变 SweepGradient:扇形渐变 看下原图,下面的渐变都是在此图基础上完成. Li ...
- Flutter中管理路由栈的方法和应用
原文地址:https://www.jianshu.com/p/5df089d360e4 本文首先讲的Flutter中的路由,然后主要讲下Flutter中栈管理的几种方法. 了解下Route和Navig ...
- 在 Flutter 中使用 TensorFlow Lite 插件实现文字分类
如果您希望能有一种简单.高效且灵活的方式把 TensorFlow 模型集成到 Flutter 应用里,那请您一定不要错过我们今天介绍的这个全新插件 tflite_flutter.这个插件的开发者是 G ...
随机推荐
- 伪元素before和after本质
之所以被称为伪元素,是因为他们不是真正的页面元素,html没有对应的元素,但所有的用法和表现行为和真正的页面元素是一样的,可以对其使用诸如页面元素一样的css样式,表面上看上去貌似页面的谋些元素,实际 ...
- springboot项目命linux环境下命令启动
测试环境:dev nohup java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 \-Dcom.s ...
- Android ANR总结
1.ANR定义 ANR的全称是application not responding,是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间未能得到有效响应或者响 ...
- 【Zookeeper】分布式锁
一.概述 实现原理 实现代码 一.概述 分布式锁解决方案(目的:为了保证在分布式领域中共享数据安全问题) 数据库实现分布式锁(不推荐.效率特别低) 基于Redis实现分布式锁setNx (非常麻烦考虑 ...
- c# 执行调用Oracle Procedure传参及回传值
////定義參數 //IDataParameter[] parameters = // { ...
- libssh
1.SSH概念 ssh(secure shell),安全外壳协议,由IETF的网络小组所制定.ssh为建立在应用层基础上的安全协议.SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议. ...
- GDI+ 实例:绘制验证码
一.概述 一般处理程序 ashx :它没有服务器控件,用response输出什么就是什么. 生成验证码原理:产生随机字符,并将字符生成为图片,同时储存到Session里去,然后验证用户输入的内容是否与 ...
- Python+request 获取响应(elapsed)和响应时间(timeout)《七》
requests发请求时,接口的响应时间,也是我们需要关注的一个点,如果响应时间太长,也是不合理的.如果服务端没及时响应,也不能一直等着,可以设置一个timeout超时的时间 具体的实现如下: 超时( ...
- Luogu P4270 [USACO18FEB]Cow Gymnasts (打表找规律)
题意 传送门 题解 首先我们不竖着看奶牛而是横着看.从下往上把奶牛叫做处于第0,1,2...0,1,2...0,1,2...层.那么相当于第000层的不动,第111层的平移一格,第222层的平移222 ...
- MVC路由规则进一步了解
本周由于工作需要,接触了PetaPoco(一个小型的ORM-框架)和ExtJS,这个项目框架是别人写好的,用的是MVC,我写的MVC程序一般控制器和视图都是在一个类库下面的,但是作者是把MVC中的控制 ...