第三百四十八回

文章目录

  • 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.hqwc.cn/news/472202.html

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

相关文章

PLC_博图系列☞FBD

PLC_博图系列☞FBD 文章目录 PLC_博图系列☞FBD背景介绍FBD优势局限性 FBD 元素 关键字&#xff1a; PLC、 西门子、 博图、 Siemens 、 FBD 背景介绍 这是一篇关于PLC编程的文章&#xff0c;特别是关于西门子的博图软件。我并不是专业的PLC编程人员&#xff0c;也不懂电路…

anomalib1.0学习纪实

回顾&#xff1a;细分、纵深、高端、上游、积累、极致。 回顾&#xff1a;产品化&#xff0c;资本化&#xff0c;规模化&#xff0c;大干快上&#xff0c;小农思维必死无疑。 春节在深圳新地中央&#xff0c;学习anomalib1.0。 一、安装&#xff1a; 1、常规安装 采用的是…

Netty Review - 底层零拷贝源码解析

文章目录 Pre概述源码解析入口索引AbstractNioByteChannel.NioByteUnsafe#readallocHandle.allocate(allocator) 小结传统的零拷贝 Pre Netty Review - 直接内存的应用及源码分析 概述 Netty 的零拷贝技术是通过优化数据传输过程中的数据复制操作&#xff0c;以降低系统的开销…

租赁香港服务器多少钱一个月?24元

阿里云香港服务器2核1G、30M带宽、40GB ESSD系统盘优惠价格24元/月&#xff0c;288元一年&#xff0c;每月流量1024GB&#xff0c;多配置可选&#xff0c;官方优惠活动入口 https://t.aliyun.com/U/bLynLC 阿里云服务器网aliyunfuwuqi.com分享阿里云香港服务器优惠活动、详细配…

嵌入式Qt Qt中的字符串类

一.Qt中的字符串类 QString vs string&#xff1a; QString在Qt库中几乎是无所不在的 所有的Qt图形用户组件都依赖于QString 实验1 &#xff1a;QString 初体验 #include <QDebug> void Sample_1() {QString s "add";s.append(" "); // &q…

Python 异常处理及程序调试

Python 是一门功能强大而又易于学习的编程语言&#xff0c;它提供了丰富的工具和库来帮助开发者编写高效、稳定的程序。然而&#xff0c;在编写复杂的应用程序时&#xff0c;错误和异常是难以避免的。本文将介绍 Python 中的异常处理机制以及程序调试技巧&#xff0c;帮助读者提…

开什么店最稳定轻松?适合一个人开的实体店推荐

在创业的道路上&#xff0c;很多人都希望找到一种稳定轻松的开店方式。 作为一名资深的鲜奶吧创业者&#xff0c;我将分享我的经验和见解&#xff0c;希望能给那些想开实体店的朋友们一些启示&#xff01;&#xff01; 我开鲜奶吧已经有 5 年时间了&#xff0c;目前经营的是鲜…

Chat with RTX 安装

1、Chat With RTX 介绍 Chat With RTX 是一个 Demo&#xff0c;用来将您自己的资料&#xff08;文档、笔记、视频或其他数据&#xff09;与大语言模型建立连接&#xff0c;从而令 LLM 更具个性化。利用检索增强生成 (RAG)、TensorRT-LLM 和 RTX 加速&#xff0c;您可以与自定义…

Java实现河南软件客服系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统管理人员2.2 业务操作人员 三、系统展示四、核心代码4.1 查询客户4.2 新增客户跟进情况4.3 查询客户历史4.4 新增服务派单4.5 新增客户服务费 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的河…

2022年12月电子学会青少年软件编程 中小学生Python编程等级考试二级真题解析(选择题)

2022年12月Python编程等级考试二级真题解析 选择题&#xff08;共25题&#xff0c;每题2分&#xff0c;共50分&#xff09; 1、运行下列程序&#xff0c;最终输出的结果是 info {1:小明,2:小黄,3:小兰} info[4]小红 info[2]小白 print(info) A、{1:小明,2:小白,3:小红,4:小…

RapidMiner数据挖掘2 —— 初识RapidMiner

本节由一系列练习与问题组成&#xff0c;这些练习与问题有助于理解多个基本概念。它侧重于各种特定步骤&#xff0c;以进行直接的探索性数据分析。因此&#xff0c;其主要目标是测试一些检查初步数据特征的方法。大多数练习都是关于图表技术&#xff0c;通常用于数据挖掘。 为此…

2.14:二维数组、非函数实现strcat、strcmp、strcpy、strlen

1.编程实现二维数组的杨辉三角 程序代码&#xff1a; 1 #include<stdio.h>2 #include<string.h>3 #include<stdlib.h>4 int main(int argc, const char *argv[])5 {6 int n;7 printf("please enter n:");8 scanf("%d",&…