当前位置: 首页 > 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;常用于搜索、存储、机器学习、广告、推荐等高性…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...