带你读《深入浅出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}

 

 

相关文章
|
开发工具 git
git版本管理
git版本管理
LeetCode43. 字符串相乘(大数相乘)
LeetCode43. 字符串相乘(大数相乘)
194 0
|
安全 JavaScript 前端开发
在Linux中生成随机数的各种方法
在计算机编程中,生成随机数是一项常见的任务,用于模拟实际情况、加密、游戏设计等。Linux系统提供了多种方法来生成随机数。本文将介绍Linux环境下生成随机数的几种常用方法,包括伪随机数生成器、/dev/random 和 /dev/urandom 设备、以及使用编程语言生成随机数。
1630 3
|
域名解析 前端开发 Cloud Native
【阿里云开发】一键部署静态博客——Hexo
【阿里云开发】一键部署静态博客——Hexo
721 0
【阿里云开发】一键部署静态博客——Hexo
|
存储
Obsidian 与 Typora 图片兼容保存路径一致设置
Obsidian 与 Typora 图片兼容保存路径一致设置
1513 0
|
人工智能 自然语言处理 开发者
AIGC助力元宇宙应用落地
【1月更文挑战第15天】AIGC助力元宇宙应用落地
373 3
AIGC助力元宇宙应用落地
|
弹性计算 定位技术 数据安全/隐私保护
狂赚13亿流水的幻兽帕鲁私服搭建,一起玩耍吧
狂赚13亿流水的幻兽帕鲁私服搭建
139465 8
|
Kubernetes 负载均衡 应用服务中间件
Kubernetes
Kubernetes 版 ACK(Alibaba Cloud Container Service for Kubernetes)是阿里云提供的一种容器服务,它基于 Kubernetes 开源容器编排平台,为用户提供高效、可扩展的容器应用管理能力。ACK 可以帮助用户在云端轻松部署、管理和扩展容器化应用,同时提供了丰富的 Kubernetes 功能,例如自动扩展、滚动更新、负载均衡等。
245 1
idea查看某类方法列表--快捷键
方法1:Alt + 7 方法2:Ctrl + F12
452 0
|
编译器 C++ 存储
【C++修炼之路】3. 类和对象(中)
【C++修炼之路】3. 类和对象(中)
【C++修炼之路】3. 类和对象(中)