带你读《深入浅出Dart》六、Dart中的集合类型(2)

简介: 带你读《深入浅出Dart》六、Dart中的集合类型(2)

带你读《深入浅出Dart》六、Dart中的集合类型(1)https://developer.aliyun.com/article/1349073?groupCode=tech_library


Map的主要方法

Map类提供了一些方法来处理和操作键值对。以下是一些常用的Map方法:

 

  • containsKey(key): 检查Map是否包含指定的键
  • containsValue(value): 检查Map是否包含指定的值
  • remove(key): 删除指定的键及其对应的值
  • addAll(other): 将其他Map的键值对添加到当前Map中
  • clear(): 删除Map中的所有键值对

以下是这些方法的使用示例:

var myMap = {
  'key1': 'value1',
  'key2': 'value2',};
print(myMap.containsKey('key1'));  // 输出 trueprint(myMap.containsValue('value3'));  // 输出 false
myMap.remove('key1');print(myMap);  // 输出 {key2: value2}
myMap.addAll({'key3': 'value3', 'key4': 'value4'});print(myMap);  // 输出 {key2: value2, key3: value3, key4: value4}
myMap.clear();print(myMap);  // 输出 {}
  1. Dart中的Set

Dart中的Set是一种无序的、包含唯一项的集合,所有的元素都是唯一的,没有重复项。这意味着无论你尝试将同样的项目添加到Set中多少次,它都只会出现一次。

创建和初始化Set

在Dart中,你可以通过以下几种方式创建和初始化Set:

 

// 创建空的Setvar emptySet = {};
// 创建并初始化Setvar initializedSet = {'item1', 'item2', 'item3'};
// 使用Set构造函数创建Setvar setWithConstructor = Set();

 

注意:如果你尝试创建一个空的Set但未指定类型,Dart会创建一个动态类型的Map。因此,为了创建一个空的Set,你需要在创建Set时提供一个类型参数。

添加和删除Set元素

你可以使用addremove方法向Set中添加或删除元素:

 

var mySet = {'item1', 'item2', 'item3'};
mySet.add('item4');print(mySet);  // 输出 {item1, item2, item3, item4}
mySet.remove('item1');print(mySet);  // 输出 {item2, item3, item4}

Set的主要方法

Set类提供了一些方法来处理和操作集合。以下是一些常用的Set方法:

 

  • contains(element): 检查Set是否包含指定的元素
  • union(other): 返回一个新的Set,包含当前Set和另一个Set中所有的元素
  • intersection(other): 返回一个新的Set,包含当前Set和另一个Set中共有的元素
  • difference(other): 返回一个新的Set,包含当前Set中的元素,但不包含另一个Set中的元素

以下是这些方法的使用示例:

var mySet1 = {'item1', 'item2', 'item3'};var mySet2 = {'item2', 'item3', 'item4'};
print(mySet1.contains('item1'));  // 输出 true
var unionSet = mySet1.union(mySet2);print(unionSet);  // 输出 {item1, item2, item3, item4}
var intersectionSet = mySet1.intersection(mySet2);print(intersectionSet);  // 输出 {item2, item3}
var differenceSet = mySet1.difference(mySet2);print(differenceSet);  // 输出 {item1}

 

 

相关文章
|
API Serverless 监控
函数组合的N种方式
随着以函数即服务(Function as a Service)为代表的无服务器计算(Serverless)的广泛使用,很多用户遇到了涉及多个函数的场景,需要组合多个函数来共同完成一个业务目标,这正是微服务“分而治之,合而用之”的精髓所在。
2544 0
|
安全 JavaScript 前端开发
在Linux中生成随机数的各种方法
在计算机编程中,生成随机数是一项常见的任务,用于模拟实际情况、加密、游戏设计等。Linux系统提供了多种方法来生成随机数。本文将介绍Linux环境下生成随机数的几种常用方法,包括伪随机数生成器、/dev/random 和 /dev/urandom 设备、以及使用编程语言生成随机数。
1465 3
|
11月前
|
人工智能 自然语言处理 算法
开箱即用的个人主页页面开发实战—基于HarmonyOS 5.0 (Next)和ArkTS的实现【HarmonyOS 5.0(Next)】
本文介绍了基于HarmonyOS 5.0(Next)和ArkTS开发的开箱即用个人主页页面。HarmonyOS 5.0(Next)采用全新“和谐美学”设计理念,通过光元素模拟、多设备无缝流转及小艺助手升级,提升用户体验。文章详细解析了使用ArkTS构建个人主页页面的代码,展示了清晰的布局层次、简洁的事件处理、状态管理和组件化开发等最佳实践。这段代码不仅实现了美观的界面设计,还提供了高效的应用导航和数据传递功能,体现了对用户体验的高度关注。
713 12
开箱即用的个人主页页面开发实战—基于HarmonyOS 5.0 (Next)和ArkTS的实现【HarmonyOS 5.0(Next)】
|
域名解析 前端开发 Cloud Native
【阿里云开发】一键部署静态博客——Hexo
【阿里云开发】一键部署静态博客——Hexo
652 0
【阿里云开发】一键部署静态博客——Hexo
|
11月前
|
数据采集 安全 定位技术
使用代理IP爬虫时数据不完整的原因探讨
在信息化时代,互联网成为生活的重要部分。使用HTTP代理爬取数据时,可能会遇到失败情况,如代理IP失效、速度慢、目标网站策略、请求频率过高、地理位置不当、网络连接问题、代理配置错误和目标网站内容变化等。解决方法包括更换代理IP、调整请求频率、检查配置及目标网站变化。
235 11
|
人工智能 自然语言处理 开发者
AIGC助力元宇宙应用落地
【1月更文挑战第15天】AIGC助力元宇宙应用落地
326 3
AIGC助力元宇宙应用落地
|
11月前
|
Java 程序员
深入理解Java异常处理机制
Java的异常处理是编程中的一块基石,它不仅保障了代码的健壮性,还提升了程序的可读性和可维护性。本文将深入浅出地探讨Java异常处理的核心概念、分类、处理策略以及最佳实践,旨在帮助读者建立正确的异常处理观念,提升编程效率和质量。
241 1
|
存储
Obsidian 与 Typora 图片兼容保存路径一致设置
Obsidian 与 Typora 图片兼容保存路径一致设置
1194 0
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的中医学习服务管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的中医学习服务管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
236 0
|
Kubernetes 负载均衡 应用服务中间件
Kubernetes
Kubernetes 版 ACK(Alibaba Cloud Container Service for Kubernetes)是阿里云提供的一种容器服务,它基于 Kubernetes 开源容器编排平台,为用户提供高效、可扩展的容器应用管理能力。ACK 可以帮助用户在云端轻松部署、管理和扩展容器化应用,同时提供了丰富的 Kubernetes 功能,例如自动扩展、滚动更新、负载均衡等。
203 1