第三百四十八回

文章目录

  • 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"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/684889.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为OD机试真题-最大N个数与最小N个数的和-2024年OD统一考试(C卷)

题目描述: 给定一个数组,编写一个函数来计算它的最大N个数与最小N个数的和。你需要对数组进行去重。 说明: 数组中数字范围[0, 1000] 最大N个数与最小N个数不能有重叠,如有重叠,输入非法返回-1 输入非法返回-1 输入描述: 第一行输入M, M标识数组大小\n第二行输入M个数,标…

【无人机】PIXHAWK、PX4、APM区别

PIXHAWK、PX4、APM APM固件专为Arduupilot开发的固件&#xff0c;现也用于PIXHAWK。有ArduCopter社区支撑、开放&#xff0c;功能全、迭代升级快&#xff0c;适合直接用。由于有较多的历史兼容性需求&#xff0c;软件代码体系相对杂乱&#xff0c;还封装了PX4的内核&#xff0c…

【数据结构】无向图创建邻接矩阵、深度优先遍历和广度优先遍历(C语言版)

无向图创建邻接矩阵、深度优先遍历和广度优先遍历 一、概念解析&#xff1a; &#xff08;1&#xff09;无向图&#xff1a;&#xff08;2&#xff09;邻接矩阵&#xff1a; 二、创建邻接矩阵&#xff1a;三、深度遍历、广度遍历 &#xff08;1&#xff09;深度遍历概念&#x…

学习笔记18:Codeforces Round 923 (Div. 3)

D 预处理&#xff0c;ans[i]记录一a[i]后面第一个与a[i]相等的值&#xff08;如果没有&#xff0c;则需要特殊判断或者初始化成一个极大值&#xff09; 每次询问时&#xff0c;可以直接看ans[l]是否大于r&#xff0c;如果大于则不存在&#xff0c;如果小于则存在 #include&l…

用HTML5实现动画

用HTML5实现动画 要在HTML5中实现动画&#xff0c;可以使用以下几种方法&#xff1a;CSS动画、使用<canvas>元素和JavaScript来实现动画、使用JavaScript动画库。重点介绍前两种。 一、CSS动画 CSS3 动画&#xff1a;使用CSS3的动画属性和关键帧&#xff08;keyframes&…

Fluke ADPT 连接器新增对福禄克万用 Fluke 17B Max 的支持

所需设备&#xff1a; 1、Fluke ADPT连接器&#xff1b; 2、Fluke 17B Max&#xff1b; Fluke 17B Max拆机图&#xff1a; 显示界面如下图&#xff1a; 并且可以将波形导出到EXCEL: 福禄克万用表需要自己动手改造&#xff01;&#xff01;&#xff01;

Spring Boot 笔记 020 redis集成

1.1 安装redis Windows 下 Redis 安装与配置 教程_redis windows-CSDN博客 2.1 引入redis坐标 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 2.2 配置…

无人机导航技术,无人机导航理论基础,无人机导航技术应用发展详解

惯性/卫星定位组合是一种比较理想的组合导航系统。在无人机导航领域&#xff0c;多年来惯性/卫星定位组合导航系统的研究一直受到普遍的关注&#xff0c;大量的理论研究成果得到实际应用。 常见的几类导航系统 单一导航 卫星导航系统 、多普勒导航、惯性导航系统(INS) 、图形…

【Java多线程】对进程与线程的理解

目录 1、进程/任务&#xff08;Process/Task&#xff09; 2、进程控制块抽象(PCB Process Control Block) 2.1、PCB重要属性 2.2、PCB中支持进程调度的一些属性 3、 内存分配 —— 内存管理&#xff08;Memory Manage&#xff09; 4、线程&#xff08;Thread&#xff09;…

蓝桥杯每日一题(python)

##斐波那契数列的应用 --- 题目斐波那契 题目&#xff1a; 如果数组 A (a0, a1, , an−1) 满足以下条件&#xff0c;就说它是一个斐波那契数组&#xff1a; 1. n ≥ 2&#xff1b; 2. a0 a1&#xff1b; 3. 对于所有的 i(i ≥ 2)&#xff0c;都满足 ai ai−1 ai−2…

阿里云幻兽帕鲁服务器更新了1.4之后,进游戏要重新创建角色,怎么解决?

阿里云幻兽帕鲁服务器更新了1.4之后&#xff0c;进游戏要重新创建角色&#xff0c;怎么解决&#xff1f; 其实这个问题的主要原因可能还是因为前后的APPID不一致导致。 因为Palworld服务端有两种&#xff0c;一种是有APPID&#xff0c;还有一种是没有APPID。 参考这篇教程&am…

曝某头部电商企业急招鸿蒙开发高手 年薪超过百万

近日某头部电商企业急需鸿蒙开发高手&#xff0c;提供高达100万的年薪&#xff0c;工作地点位于北京。 随着鸿蒙生态不断发展壮大&#xff0c;越来越多的企业开始加入其中&#xff0c;对鸿蒙OS开发工程师的需求也越来越迫切。据新浪科技报道&#xff0c;多家互联网公司相继发布…

gem5学习(20):替换策略——Replacement Policies

目录 一、Random 二、Least Recently Used (LRU) 三、Tree Pseudo Least Recently Used (TreePLRU) 四、Bimodal Insertion Policy (BIP) 五、LRU Insertion Policy (LIP) 六、Most Recently Used (MRU) 七、Least Frequently Used (LFU) 八、First-In, First-Out (FIF…

cefsharp121(cef121.3.7Chromium121.0.6167.160)升级测试及其他H264版本

一、版本说明 1.1 本此版本 此版本CEF 121.3.7+g82c7c57+chromium-121.0.6167.160 / Chromium 121.0.6167.160 1.2 其他支持H264版本 支持H264推荐版本:V100,V109,V111,V119版本,其他V114,V115,V108,V107 支持win7/win8/win8.1最后版本v109.x 支持NET4.5.2最后版本v114.x …

如何合理评估信号过孔的残桩效应--Via Stub

设计中&#xff0c;之所以会去考察信号过孔的残桩效应&#xff08;Via Stub&#xff09;&#xff0c;是因为它的存在导致了不需要的频率谐振&#xff0c;当这些谐振出现在所关注的信号通道的插入损耗中时&#xff0c;就会引发较为严重的信号完整性&#xff08;SI&#xff09;问…

python---Pixiv排行榜图片获取(2024.2.16)

1.提示&#xff1a; 使用需要安装各种import的包&#xff0c;都是很基础的包&#xff0c;直接安装即可。 自备梯子 。 2.严肃警告 本程序仅可用作个人爱好&#xff0c;商业用途严禁&#xff01;请自觉遵守君子协定robots.txt不要给网址过大的压力&#xff0c;每天以及同一时段…

Springboot --- 使用国内的 AI 大模型 对话

实在是不知道标题写什么了 可以在评论区给个建议哈哈哈哈 先用这个作为标题吧 尝试使用 国内给出的 AI 大模型做出一个 可以和 AI 对话的 网站出来 使用 智普AI 只能 在控制台中输出 对应的信息 不如就做一个 maven 的 项目调用对应的API https://open.bigmodel.cn/dev/api#g…

Python 字符串格式化输出

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站零基础入门的AI学习网站~。 前言 字符串格式化是编程中一个常见的需求&#xff0c;它可以们将不同类型的数据&#xff08;如数字、文本、日…

JVM-JVM中对象的生命周期

申明&#xff1a;文章内容是本人学习极客时间课程所写&#xff0c;文字和图片基本来源于课程资料&#xff0c;在某些地方会插入一点自己的理解&#xff0c;未用于商业用途&#xff0c;侵删。 原资料地址&#xff1a;课程资料 对象的创建 常量池检查:检查new指令是否能在常量池…

openEuler 22.03 LTS 上源码安装 PostgreSQL 15

安装PostgreSQL 15 1 安装必要的依赖 #yum install -y readline-devel zlib-devel gcc2、下载源码 # wget https://ftp.postgresql.org/pub/source/v15.6/postgresql-15.6.tar.gz # tar -xzvf postgresql-15.6.tar.gz3 配置 # cd postgresql-15.6/ # ./configure4 编译安装…