You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter:如何将两个Map对象作为键值对添加到另一个Map中?

问题描述

现有两个Dart Map对象:

Map map01 = {
  'name': 'Peter',
  'age': 30,
};

Map map02 = {
  'name': 'Mark',
  'age': 25,
};

需要创建一个新的Map对象map1,将map01和map02作为键,对应关联新的Map值,最终形式如下:

Map map1 = {
  map01: {
    'name': 'Peter',
    'age': 50,
  },
  map02: {
    'name': 'Mark',
    'age': 25,
  },
};

请问该如何实现?

实现方案

在Dart中,Map的键可以是任意类型的对象(只要该对象能正确生成哈希码并支持相等性判断),直接将map01、map02作为键,赋值对应的目标Map值即可。

代码示例

// 定义原Map对象
Map map01 = {
  'name': 'Peter',
  'age': 30,
};

Map map02 = {
  'name': 'Mark',
  'age': 25,
};

// 创建目标map1并完成赋值
Map map1 = {
  // 将map01作为键,对应修改age后的新Map
  map01: {'name': 'Peter', 'age': 50},
  // 将map02作为键,对应原内容的Map(若后续不想让原map02的修改影响这里,建议用新Map实例)
  map02: {'name': 'Mark', 'age': 25},
};

补充说明

  • Dart默认的Map实现(如HashMap)对键的判断基于对象引用:即使两个Map内容完全一致,只要是不同实例,就会被当作不同的键。
  • 如果需要基于Map内容判断键的相等性,需要自定义Map的hashCode和==方法,不过大部分场景下直接用实例作为键就能满足需求。

内容的提问来源于stack exchange,提问作者Kvu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 11:33:46