第三百五十七回
文章目录
- 1. 概念介绍
- 2. 使用方法
- 2.1 List
- 2.2 Map
- 2.3 Set
- 3. 示例代码
- 4. 内容总结
我们在上一章回中介绍了"convert包"相关的内容,本章回中将介绍collection.闲话休提,让我们一起Talk Flutter吧。

1. 概念介绍
我们在本章回中介绍的内容是collection,如果有Java开发经验的看官,估计会想起来,Java中也有同名的类,它要主提供List,Set,Map这些常用的数据结构。不
过我们在这里介绍的是dart中的collection,它们虽然功使用了不同的编程语言,但是都提供了List,Set,Map这些常用的数据结构,本章回中将介绍它们的使用方法。
2. 使用方法
collection中主要包含List,Set,Map这样常用的数据结构,接下来我们分别介绍这些数据结构。
2.1 List
List也叫列表,主要用来存放具有相同类型的成员,成员的存放顺序与添加成员时的顺序相同。它提供了添加,插入,修改和删除成员的方法。这样可以方便地操作列表
中的成员。此外,它还提供了一些操作符来操作列表,比如+用来合并两个列表,==用来判断两个列表是否相等。
2.2 Map
Map也叫哈希表,主要用来存放键值对类型的成员,成员的存放顺序不重要,主要通过成员的键来获取与该键对应的值。它提供了添加,修改和删除成员的方法。这样可以
方便地操作哈希表中的成员。此外,它还提供了一些操作符来操作哈希表,比如,==用来判断两个哈希表是否相等。
2.3 Set
Set也叫集合,主要用来存放具有不同类型的成员,成员没有固定的存放顺序,而且不能重复的成员。它提供了添加,修改,查询和删除成员的方法。这样可以方便地操作
集合中的成员。此外,它还提供了一些操作符来操作集合,比如==用来判断两个集合是否相等。
3. 示例代码
final growableList = <String>['A', 'B']; // Creates growable list.
growableList[0] = 'G';
print(growableList); // [G, B]growableList.add('X');
growableList.addAll({'C', 'B'});
print(growableList); // [G, B, X, C, B]final indexA = growableList.indexOf('A'); // -1 (not in the list)
final firstIndexB = growableList.indexOf('B'); // 1
final lastIndexB = growableList.lastIndexOf('B'); // 4growableList.remove('C');
growableList.removeLast();
print(growableList); // [G, B, X]growableList.insert(1, 'New');
print(growableList); // [G, New, B, X]growableList.replaceRange(0, 2, ['AB', 'A']);
print(growableList); // [AB, A, B, X]growableList.fillRange(2, 4, 'F');
print(growableList); // [AB, A, F, F]
我们在上面的示例代码中演示了列表的用法,其中包含列表中各个接口的用法,比如添加,修改,删除成员的接口。这些代码来自官方文档,建议大家自己动手去实践,此
外,我们没有提供Map和Set的示例代码,大家可以参考文官文档来实践。
4. 内容总结
本章回中我们主要介绍了dart中的connection,如果大家有Java编程经验,就会发现它和Java中的colleciton十分相似。此外,dart中还有一个叫collection的
包,大家不要与此包混淆。本章回中介绍的collection在dart::core中,而且colloect是一个独立的包,包中在List,Map,Set这些数据结构的基础上提供了专门
的类,我们可以通过类中的相关方法来使用这些数据结构。包中还提供了一个判断这些数据结构相等的接口:Equality.通过实现接口中的方法来判断数据结构是否相等。
最后,我们对本章回的内容做一个全面的总结:
- ListList也叫列表,主要用来存放具有相同类型的数据;
- Map也叫哈希表,主要用来存放键值对类型的数据;
- Set也叫集合,主要用来存放具有不同类型的数据,不能存放相同的数据;
- List,Map,Set都提供添加,查找,删除成员的方法;
看官们,与"collection"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!
相关文章:
第三百五十七回
文章目录 1. 概念介绍2. 使用方法2.1 List2.2 Map2.3 Set 3. 示例代码4. 内容总结 我们在上一章回中介绍了"convert包"相关的内容,本章回中将介绍collection.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章回中介绍的内容是col…...
新版Java面试专题视频教程——框架篇
新版Java面试专题视频教程——框架篇 框架篇 01-框架篇介绍02-Spring-单例bean是线程安全的吗03-Spring-AOP相关面试题04-Spring-事务失效的场景05-Spring-bean的生命周期5.1 BeanDefinition 06-Spring-bean的循环依赖(循环引用)6.1 一般对象的循环依…...
网络爬虫实战 | 上传以及下载处理后的文件
详细代码在文尾 以实现爬虫一个简单的(SimFIR (doctrp.top))网址为例,需要遵循几个步骤: 1. 分析网页结构 首先,需要分析该网页的结构,了解图片是如何存储和组织的。这通常涉及查看网页的HTML源代码,可能还包括CSS和JavaScript文件。检查图片URL的模式,看看是否有规律…...
Linux--shell编程中有关while循环的详细内容
文章关于while循环的内容目录 一、while循环 二、无限循环 三、case语句 四、跳出循环 五、break 六、continue 一、w…...
回归测试与重新测试
软件开发是一个充满挑战的旅程,在这条道路上始终伴随着错误和不确定性的挑战。然而,真正将卓越软件与其他软件区分开来的是管理和解决这些挑战的效率,这就是结构良好的测试计划变得至关重要的地方,该计划的核心在于两个基本实践&a…...
java 版本企业招标投标管理系统源码+多个行业+tbms+及时准确+全程电子化
项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及审…...
详解动态内存管理!
目录 编辑 1.为什么要用动态内存分配 2.malloc和free 2.1 malloc 2.2 free 3.calloc和realloc 3.1 calloc 3.2 realloc 4.常见的动态内存的错误 4.1 对NULL的解引用操作 4.2 对动态内存开辟空间的越界访问 4.3 对非动态内存开辟空间用free释放 4.4 使用free释放动…...
iocp简单例子
下方代码中,没有写注释的地方,说明与icop网络无关也就是它们都不重要,重要的位置全部都有注释,复制下方代码就可以运行看效果 iocp带网络的例子: 客户端: 客户端只有一个main,只有socket相关函…...
HAL STM32 HW I2C DMA + SSD1306/SH1106驱动示例
HAL STM32 HW I2C DMA SSD1306/SH1106驱动示例 📍硬件I2C DMA驱动参考:https://blog.csdn.net/weixin_45065888/article/details/118225993 🔖本工程基于STM32F103VCT6,驱动程序独立,可以移植到任意STM32型号上使用。…...
grafana配置钉钉告警模版(一)
1、配置钉钉告警模版 创建钉钉告警模版,然后在创建钉钉告警时调用模版。 定义发送内容具体代码 my_text_alert_list 是模版名称后面再配置钉钉告警时需要调用。 {{/* 定义消息体片段 */}} {{ define "my_text_alert_list" }}{{ range . }}告警名称&…...
佳能2580的下载手册
凡是和电子产品有关的产品其内部都开始不断地进行内卷,在不断地内卷背后,意味着科技更新和换代,自己也入手了一台佳能2580的打印机,一台相对比较老式的打印机,以此不断地自己想要进行打印的需要。 下载的基础步骤&…...
YOLO-World:实时开放词汇目标检测
paper:https://arxiv.org/pdf/2401.17270.pdf Github:GitHub - AILab-CVC/YOLO-World: Real-Time Open-Vocabulary Object Detection online demo:https://huggingface.co/spaces/stevengrove/YOLO-World 目录 0. 摘要 1. 引言 2. 相关工…...
Unity中关于群组的一些组件
前言 在游戏开发环境中,UI组件是构建玩家交互界面的基础。以下是一些常见UI组件的详细解释和它们适用的场景,方便我们更好地理解和使用这些工具。 1. Graphic Raycaster Graphic Raycaster组件是游戏UI交互的核心。在Unity等游戏引擎中,当玩…...
面向对象详解,面向对象的三大特征:封装、继承、多态
文章目录 一、面向对象与面向过程1、什么是面向过程?2、什么是面向对象? 二、类与对象1. 初识对象2. 类的成员方法2.1 类的定义和使用2.2 成员方法 3. 类和对象4. 魔法方法1. _ _ inint _ _ 构造方法2. _ _ str _ _ 字符串方法3. _ _ lt _ _ 小于符号比较…...
【阿里云服务器的一些使用坑】都是无知的泪水呀
发生了什么? 我想学习一下关于Java的MySQL、Nginx 相关的知识。然后就用首次优惠注册的阿里云,都没有搞清楚实例,镜像,带宽,磁盘。然后。因为一不小心——我想去换一个Ubuntu的镜像而不是CentOS。就把实例给释放啊。之…...
Docker的常用命令||Docker是个流行的容器化平台,它允许你打包、分发和运行应用程序。
Docker是一个流行的容器化平台,它允许你打包、分发和运行应用程序。以下是一些常用的Docker命令及其示例用法: 1. **docker run**: 用于运行一个新的容器实例。 docker run <image_name> 例如,运行一个Nginx容器: docker ru…...
汽车电子论文学习--电动汽车电机驱动系统动力学特性分析
关键重点: 1. 汽车的低速转矩存在最大限制,受附着力限制,因路面不同而变化。 2. 起步加速至规定转速的时间可以计算得到: 3. 电机额定功率的计算方式: 可以采取最高设计车速90%或120km/h匀速行驶的功率作为电机额定功…...
c++的一些陌生用法记录
c的一些陌生用法记录 1. 完美转发std::forward<decltype(PH1)>(PH1)static的用法 1. 完美转发std::forward<decltype(PH1)>(PH1) static的用法 static函数与普通函数的区别: 用static修饰的函数,本限定在本源码文件中,不能被本源…...
Vue | (三)使用Vue脚手架(中)| 尚硅谷Vue2.0+Vue3.0全套教程
文章目录 📚Todo-list 案例🐇组件化编码流程(通用)🐇实现静态组件🐇展示动态数据🐇交互⭐️添加一个todo⭐️todo勾选实现⭐️删除功能实现⭐️底部统计功能实现⭐️底部全选功能实现⭐️底部一…...
TenorFlow多层感知机识别手写体
文章目录 数据准备建立模型建立输入层 x建立隐藏层h1建立隐藏层h2建立输出层 定义训练方式建立训练数据label真实值 placeholder定义loss function选择optimizer 定义评估模型的准确率计算每一项数据是否正确预测将计算预测正确结果,加总平均 开始训练画出误差执行结…...
ConvNeXt 改进 | 自研模块:LLM 的 AttnRes残差自注意力模块 + GAM 通道注意机制(Kimi 团队 2026),自研AttnRes-GAM注意力残差块 ,实现高效涨点,独家首发
本文教的是方法,也给出几种改进方法,二次创新结构,百变不离其宗,一文带你改进自己模型,科研路上少走弯路。 前言 本文解析的是由 Kimi (月之暗面) 团队发布的最新技术报告 《Attention Residuals》。在传统 Transformer 架构中,注意力模块产生的输出直接与残差流(Resid…...
炸锅!Claude Code 完整源码意外泄露,51 万行核心代码直接开源!
突发!Claude Code 意外开源 51 万行源码全网曝光 2026 年 3 月 31 日,AI 圈迎来重磅事件 ——Anthropic 旗下 Claude Code 因 npm 配置失误,通过 source map 文件意外泄露全部源码,超 1900 个文件、51.2 万行 TypeScript 代码公开…...
2024数学建模实战解析:多模型融合的农作物种植策略优化
1. 农作物种植策略优化的核心挑战 农业种植规划从来都不是简单的选择题。记得去年帮一个乡村做种植方案时,村长拿着往年的收成数据一脸愁容:"明明去年种辣椒赚了钱,怎么今年大家都种就亏本了?"这个问题恰恰揭示了农作物…...
深入解析ARS_408毫米波雷达与SocketCAN的CAN总线通信实践
1. 从零开始:为什么我们需要SocketCAN来“对话”毫米波雷达? 大家好,我是老张,在智能驾驶和机器人领域摸爬滚打了十几年,和各种传感器打交道是家常便饭。今天想和大家深入聊聊一个非常具体、但又至关重要的技术点&…...
告别命令行恐惧:FastbootEnhance如何让Android刷机变得像点菜一样简单?
告别命令行恐惧:FastbootEnhance如何让Android刷机变得像点菜一样简单? 【免费下载链接】FastbootEnhance A user-friendly Fastboot ToolBox & Payload Dumper for Windows 项目地址: https://gitcode.com/gh_mirrors/fa/FastbootEnhance 还…...
提升Python编码效率:ptpython语法高亮与自动补全的终极指南
提升Python编码效率:ptpython语法高亮与自动补全的终极指南 【免费下载链接】ptpython A better Python REPL 项目地址: https://gitcode.com/gh_mirrors/pt/ptpython ptpython是一款功能强大的Python REPL工具,它通过语法高亮、智能自动补全和丰…...
3D模型优化终极指南:glTF Pipeline如何让Web应用加载更快
3D模型优化终极指南:glTF Pipeline如何让Web应用加载更快 【免费下载链接】gltf-pipeline Content pipeline tools for optimizing glTF assets. :globe_with_meridians: 项目地址: https://gitcode.com/gh_mirrors/gl/gltf-pipeline glTF Pipeline是一款功能…...
5分钟掌握YetAnotherKeyDisplayer:专业按键可视化工具终极指南
5分钟掌握YetAnotherKeyDisplayer:专业按键可视化工具终极指南 【免费下载链接】YetAnotherKeyDisplayer The application for displaying pressed keys of the keyboard 项目地址: https://gitcode.com/gh_mirrors/ye/YetAnotherKeyDisplayer YetAnotherKey…...
用Multisim复刻经典24秒篮球计时器:从555时钟到数码管显示的保姆级仿真教程
用Multisim复刻经典24秒篮球计时器:从555时钟到数码管显示的保姆级仿真教程 篮球比赛中那令人窒息的最后24秒倒计时,不仅是球员的决胜时刻,也是电子爱好者眼中完美的数字电路实践案例。本文将带你用Multisim从零搭建一个完整的24秒计时系统&a…...
OpenClaw与Qwen3-14B联调指南:解决模型响应超时与截断问题
OpenClaw与Qwen3-14B联调指南:解决模型响应超时与截断问题 1. 问题背景与挑战 上周我在尝试用OpenClaw自动化处理一批技术文档时,遇到了一个棘手的问题:当任务链超过5个步骤时,Qwen3-14B模型经常出现响应超时或输出截断。这直接…...
