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

(九)Dart 中的 Map(映射)

Dart 中的 Map(映射)

Map 简介

映射(Map)是无序的键值对集合,每个键(key)都对应一个值(value)。

常用属性

  • keys:获取所有键(key)的集合。
  • values:获取所有值(value)的集合。
  • isEmpty:判断映射是否为空。
  • isNotEmpty:判断映射是否不为空。

常用方法

  • remove(key):删除指定键(key)的键值对。
  • addAll({...}):合并映射,向映射中添加多个键值对。
  • containsValue(value):检查映射中是否包含指定的值(value),返回 truefalse
  • forEach:遍历映射中的每个键值对。
  • map:对映射中的每个键值对进行映射操作。
  • where:筛选符合条件的键值对。
  • any:检查是否至少有一个键值对满足条件。
  • every:检查是否所有键值对都满足条件。

示例代码

void main() {
  // 创建一个映射
  Map<String, dynamic> person = {
    "name": "张三",
    "age": 20,
    "sex": "男"
  };

  // 打印映射中的所有键
  print('所有键: ${person.keys.toList()}');

  // 打印映射中的所有值
  print('所有值: ${person.values.toList()}');

  // 检查映射是否为空
  print('映射是否为空: ${person.isEmpty}');
  print('映射是否不为空: ${person.isNotEmpty}');

  // 合并映射
  person.addAll({
    "work": ['敲代码', '送外卖'],
    "height": 160
  });
  print('合并后的映射: $person');

  // 删除指定键的键值对
  person.remove("sex");
  print('删除键 "sex" 后的映射: $person');

  // 检查映射中是否包含指定值
  print('映射中是否包含值 "张三": ${person.containsValue("张三")}');
}

相关文章:

  • FPGA设计中时间单位科普
  • VS Code使用过程记录
  • Redisson 分布式锁原理
  • MCP(1)
  • 深入解析 Redis 原理:架构、数据结构与高效存储
  • 动态规划(6.不同路径II)
  • Binder机制源码分析
  • 蓝桥杯关于字符串的算法题目(leetcode回文串的判断问题)
  • 【队列】循环顺序队列和链式队列
  • 传感器研习社:臭味传感器(Odorant Sensor)
  • 【论文阅读】Contrastive Clustering Learning for Multi-Behavior Recommendation
  • Java的表达式自动类型提升
  • Netty中的直接内存是怎么回事?
  • 【leetcode hot 100 78】子集
  • companion object和object 从kotlin转java分析
  • lua实现面向对象(封装/继承/多态)
  • AI大白话(三):深度学习——AI的‘大脑‘是如何构建的?
  • 批量将 PPT 转换为PDF/XPS/JPG图片等其它格式
  • 【IROS 2025】CMU提出路径规划器PIPE:机器人探索效率提升14.6%,地图准确率提高9.3%!
  • 《真·出师表》
  • 福建福州马尾区区长王刚跨省份调任新疆生产建设兵团国资委主任
  • 国家能源局:4月份全社会用电量同比增长4.7%
  • 破题“省会担当”,南京如何走好自己的路?
  • 上海发布台风红色预警?实为演练,今日下午局部中雨下班请注意
  • 安徽凤阳通报鼓楼瓦片脱落:去年3月维修竣工,已成立调查组
  • 国家外汇管理局:4月货物贸易项下跨境资金净流入649亿美元