当前位置: 首页 > news >正文

flutter_鸿蒙next_Dart基础②List

目录

代码示例

代码逐段解析

1. 创建和打印列表

2. 强类型列表

3. 创建可扩展的空列表

4. 创建填充列表

5. 列表扩展

6. 使用可选展开操作符

7. 获取列表长度

8. 列表反转

9. 添加多个元素

10. 移除元素

11. 根据索引移除元素

12. 在特定位置插入元素

13. 清空列表

14. 列表合并

写在最后


在本篇博客中,我们将探讨 Dart 编程语言中的列表(List)操作。列表是一种有序的集合,允许存储不同类型的数据。通过一段简单的代码示例,我们将逐步解析 Dart 中的列表操作。

代码示例

void main(){List l1 = ['a','b','c'];print(l1);List l2 = <int>[1,2,3];print(l2);var l3 = new List.empty(growable:true );l3.add(1);print(l3);var l4 = new List.filled(5,"qwe");print(l4);var l5 = [0,...l4];print(l5);var l6;//nullvar l7 = [7,...?l6];//Text(name ?? "");print(l7);print(l4.length);print(l1.reversed.toList());l1.addAll(['w','e']);print(l1);l1.remove('a');print(l1);List l8= ['a','b','c'];l8.removeAt(2);print(l8);l8.insert(1, 9);print(l8);l8.clear();print(l8);List A = ['a','b'];print(A.join('-'));}

代码逐段解析

1. 创建和打印列表
List l1 = ['a', 'b', 'c']; print(l1);

这段代码声明了一个名为 l1 的列表,并初始化为包含字符 'a''b''c' 的集合。使用 print() 函数将该列表输出到控制台,结果为 ['a', 'b', 'c']

2. 强类型列表
List l2 = <int>[1, 2, 3]; print(l2);

这里声明了一个强类型的列表 l2,它只允许存储 int 类型的元素。列表被初始化为包含数字 123,并打印出来。

3. 创建可扩展的空列表
var l3 = new List.empty(growable: true); 
l3.add(1); 
print(l3);

通过 List.empty(growable: true) 创建一个空的可扩展列表 l3。随后,使用 add() 方法将数字 1 添加到列表中,输出结果为 [1]

4. 创建填充列表
var l4 = new List.filled(5, "qwe"); 
print(l4);

这段代码通过 List.filled(5, "qwe") 创建了一个长度为 5 的列表 l4,所有元素都被初始化为字符串 "qwe"。打印出的结果为 ['qwe', 'qwe', 'qwe', 'qwe', 'qwe']

5. 列表扩展
var l5 = [0, ...l4]; 
print(l5);

此段代码展示了列表扩展操作。通过 ... 操作符,可以将 l4 的元素添加到新列表 l5 中。l5 的输出结果为 [0, 'qwe', 'qwe', 'qwe', 'qwe', 'qwe']

6. 使用可选展开操作符
var l6; 
// null var l7 = [7, ...?l6]; 
// Text(name ?? ""); print(l7);

这段代码中,l6 未初始化,默认为 null。使用可选展开操作符 ...?l6 中的元素添加到 l7 中,若 l6null,则不会添加任何元素。输出结果为 [7]

7. 获取列表长度
print(l4.length);

使用 length 属性获取列表 l4 的长度,输出结果为 5,表示该列表包含 5 个元素。

8. 列表反转
print(l1.reversed.toList());

reversed 属性用于反转列表 l1 的顺序。将其转换为列表后输出,结果为 ['c', 'b', 'a']

9. 添加多个元素
l1.addAll(['w', 'e']);print(l1);

使用 addAll() 方法向 l1 中添加多个元素 ['w', 'e']。更新后的 l1 输出结果为 ['a', 'b', 'c', 'w', 'e']

10. 移除元素
l1.remove('a'); 
print(l1);

这段代码使用 remove() 方法从 l1 中移除元素 'a'。更新后的 l1 输出结果为 ['b', 'c', 'w', 'e']

11. 根据索引移除元素
List l8 = ['a', 'b', 'c']; 
l8.removeAt(2); 
print(l8);

这部分代码演示了根据索引移除元素。removeAt(2) 将删除索引为 2 的元素 'c',更新后的 l8 输出结果为 ['a', 'b']

12. 在特定位置插入元素
l8.insert(1, 9); 
print(l8);

使用 insert() 方法在索引 1 的位置插入数字 9。更新后的 l8 输出结果为 ['a', 9, 'b']

13. 清空列表
l8.clear(); 
print(l8);

使用 clear() 方法将列表 l8 清空,输出结果为 [],表示列表中不再有任何元素。

14. 列表合并
List A = ['a', 'b']; 
print(A.join('-'));

最后一段代码使用 join() 方法将列表 A 中的元素连接成一个字符串,元素之间用 '-' 分隔。输出结果为 'a-b'

写在最后

通过这段代码,我们学习了 Dart 中列表的基本操作,包括创建列表、添加、移除、插入元素、清空列表及其长度、反转等功能。这些操作是开发过程中必不可少的技能,能够帮助我们更好地管理和操作数据。希望这篇博客对你理解 Dart 列表的操作有所帮助!

相关文章:

flutter_鸿蒙next_Dart基础②List

目录 代码示例 代码逐段解析 1. 创建和打印列表 2. 强类型列表 3. 创建可扩展的空列表 4. 创建填充列表 5. 列表扩展 6. 使用可选展开操作符 7. 获取列表长度 8. 列表反转 9. 添加多个元素 10. 移除元素 11. 根据索引移除元素 12. 在特定位置插入元素 13. 清空列…...

【2024保研经验帖】武汉大学测绘遥感国家重点实验室夏令营(计算机向)

前言 先说本人背景&#xff1a;末211&#xff0c;rk前5%&#xff0c;无科研&#xff0c;有几个竞赛(数模、机器人等) 武大的国重是我参加的第二个夏令营&#xff0c;武大国重这次有提前开几个分会场&#xff0c;一个在中南大学&#xff0c;一个在吉林大学&#xff0c;还有在兰…...

PyGWalker:让你的Pandas数据可视化更简单,快速创建数据可视化网站

1、PyGWalker应用: 在数据分析的过程中,数据的探索和可视化是至关重要的环节,如何高效地将分析结果展示给团队、客户,甚至是公众,是很多数据分析师和开发者面临的挑战,接下来介绍的两大工具组合——PyGWalker与Streamlit,可以帮助用户轻松解决这个问题,即使没有复杂的代…...

Ubuntu24.04远程开机

近来在几台机器上鼓捣linux桌面&#xff0c;顺便研究一下远程唤醒主机。 本篇介绍Ubuntu系统的远程唤醒&#xff0c;Windows系统的唤醒可搜索相关资料。 依赖 有远程唤醒功能的路由器&#xff08;当前一般都带这个功能&#xff09;有线连接主机&#xff08;无线连接有兴趣朋友…...

网络编程(12)——完善粘包处理操作(id字段)

十二、day12 之前的粘包处理是基于消息头包含的消息体长度进行对应的切包操作&#xff0c;但并不完整。一般来说&#xff0c;消息头仅包含数据域的长度&#xff0c;但是如果要进行逻辑处理&#xff0c;就需要传递一个id字段表示要处理的消息id&#xff0c;当然可以不在包头传i…...

「3.3」虫洞 Wormholes

多组数据不清零——见祖宗 「3.3」虫洞 Wormholes 问题背景 「一本通3.3 练习2」 题目描述 John 在他的农场中闲逛时发现了许多虫洞。虫洞可以看作一条十分奇特的有向边&#xff0c;并可以使你返回到过去的一个时刻&#xff08;相对你进入虫洞之前&#xff09;。John 的每…...

网页篡改防御方法

网页篡改防御方法 将服务器安全补丁升级到最新版 操作系统、应用程序、数据库等都需要使用最新的安全补丁&#xff0c;打补丁主要是为防止攻击者利用缓冲溢出和设计缺陷等进行攻击。 封闭未使用但已经开放的网络服务端口及未使用的服务 对于Windows Server 2003操作系统&am…...

Pikachu-Cross-Site Scripting-xss盲打

xss盲打&#xff0c;不是一种漏洞类型&#xff0c;而是一个攻击场景&#xff1b;在前端、或者在当前页面是看不到攻击结果&#xff1b;而是在后端、在别的页面才看到结果。 登陆后台&#xff0c;查看结果&#xff1b;...

JAVA思维提升案例5

抢红包案例&#xff1a; 要求&#xff1a; 一个大V直播时发起了抢红包活动&#xff0c;分别有&#xff1a;9、666、188、520、99999五个红包。 请模拟粉丝来抽奖&#xff0c;按照先来先得&#xff0c;随机抽取&#xff0c;抽完即止&#xff0c;注意&#xff1a;一个红包只能被…...

PostgreSQL的字符集

PostgreSQL的字符集 PostgreSQL 支持多种字符集&#xff08;character sets&#xff09;&#xff0c;也称为编码&#xff08;encoding&#xff09;。字符集决定了数据库存储和处理文本数据的方式。在创建数据库时&#xff0c;可以指定数据库的字符集&#xff0c;或者使用默认的…...

CUDA 参考文章

CUDA&#xff1a;NVCC编译过程和兼容性详解_nvcc把cuda代码转换成什么-CSDN博客https://blog.csdn.net/fb_help/article/details/80462853 1、CUDA&#xff1a;NVCC编译过程和兼容性详解 CUDA&#xff1a;NVCC编译过程和兼容性详解 https://codeyarns.com/2014/03/03/how-to-sp…...

强缓存和协商缓存的区别

强缓存和协商缓存是Web开发中用于优化页面加载性能的两种主要缓存机制&#xff0c;它们之间存在显著的区别。以下是对这两种缓存机制的详细比较&#xff1a; 一、定义与工作原理 强缓存 定义&#xff1a;强缓存是指在浏览器发送请求前&#xff0c;先检查本地缓存中是否存在可用…...

工控系统组成与安全需求分析

目录 工控系统安全威胁与需求分析工业控制系统安全需求分析 工控系统安全威胁与需求分析 工业控制系统是由各种控制组件监测组件数据处理与展示组件共同构成的&#xff0c;对工业生产过程进行控制和监控的业务流程管控系统。 就是现在有很多工厂&#xff0c;它比如说要生产鞋…...

C(十三)for、while、do - while循环的抉择 --- 打怪闯关情景

前言&#xff1a; 继C&#xff08;十&#xff09;for循环 --- 黑神话情景之后&#x1f449; https://blog.csdn.net/2401_87025655/article/details/142684637 今天&#xff0c;杰哥想用一个打怪闯关的场景让与大家一起初步认识一下for、while、do - while循环的抉择。&#xf…...

【Android 源码分析】Activity生命周期之onStop-2

忽然有一天&#xff0c;我想要做一件事&#xff1a;去代码中去验证那些曾经被“灌输”的理论。                                                                                  – 服装…...

SpringCloudStream+RocketMQ多topic

之前写过两篇关于SpringCloudStream文章 spring-cloud-stream版本升级&#xff0c;告别旧注解EnableBinding&#xff0c;拥抱函数式编程_spring-cloud-stream output注解没有了-CSDN博客 SpringCloudStreamRocketMQ事务消息配置_spring-cloud-starter-stream-rocketmq-CSDN博…...

随记 前端框架React的初步认识

区分语言 像js 就是构建的最基本的 React框架和Vue框架&#xff0c;用自己的话来说的话&#xff0c;就是对js进行了一层封装&#xff0c;使使用js更加的方便 但是&#xff0c;React框架和Vue框架又不能这么简单的理解&#xff0c;因为这些框架里还封装了一些其他的东西。 向…...

数据结构 ——— 单链表oj题:链表分割(带哨兵位单向不循环链表实现)

目录 题目要求 手搓简易单链表 代码实现 题目要求 现有一链表的头指针 ListNode* head &#xff0c;给一定值 x &#xff0c;编写一段代码将所有小于 x 的节点排在其余节点之前&#xff0c;且不能改变原来的数据顺序&#xff0c;返回重新排列后的链表的头节点 举例说明&a…...

华为 HCIP-Datacom H12-821 题库 (32)

&#x1f423;博客最下方微信公众号回复题库,领取题库和教学资源 &#x1f424;诚挚欢迎IT交流有兴趣的公众号回复交流群 &#x1f998;公众号会持续更新网络小知识&#x1f63c; 1.当一个运行 MSTP 协议的交换设备端口收到一个配置BPDU 时&#xff0c;会与设备保存的全局配…...

[C++][第三方库][brpc]详细讲解

目录 1.介绍2.安装3.类与接口介绍1.日志输出类与接口2.ProtoBuf类与接口3.服务端类与接口4.客户端类与接口 4.使用0.一般流程1.Server2.客户端 -- 同步调用3.客户端 -- 异步调用 1.介绍 brpc是用C编写的工业级RPC框架&#xff0c;常用于搜索、存储、机器学习、广告、推荐等高性…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

NPOI操作EXCEL文件 ——CAD C# 二次开发

缺点:dll.版本容易加载错误。CAD加载插件时&#xff0c;没有加载所有类库。插件运行过程中用到某个类库&#xff0c;会从CAD的安装目录找&#xff0c;找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库&#xff0c;就用插件程序加载进…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...