map构造函数可直接传入二维数组初始化,每个子数组格式为[key, value]且长度为2,键值类型任意;多余元素被忽略,不足则value为undefined;重复键后者覆盖前者。

可以直接在 Map 构造函数中传入一个二维数组(即元素为长度为 2 的子数组的数组),每个子数组的第一个元素作为键,第二个作为值。
传入格式要求
二维数组中的每个子数组必须是 [key, value] 形式,且长度严格为 2。键和值可以是任意类型(包括对象、函数、Symbol 等)。
-
new Map([['a', 1], ['b', 2]])→ 正常创建,键为字符串 -
new Map([[{}, 'obj'], [function(){}, 'fn']])→ 键为对象或函数也合法 -
new Map([['x', 1, 'extra']])→ 多余元素会被忽略(只取前两个) -
new Map([['x']])→ 子数组长度不足 2,value 为undefined
常见初始化写法
最常用的是字面量二维数组,也可以用变量或表达式生成:
const m = new Map([['name', 'Alice'], ['age', 30]]);const pairs = [['id', 101], ['status', 'active']]; const m = new Map(pairs);-
new Map(Object.entries({a: 1, b: 2}))→ 把普通对象转成 Map
注意事项
传入的二维数组本身不会被 Map 持有引用,但其内部的键和值仍遵循 JS 引用规则;构造后修改原数组不影响 Map,但若键是对象,后续通过该对象修改属性,Map 中仍能通过它访问对应值(因为键是同一个引用)。
如果二维数组里有重复键,后面出现的会覆盖前面的(按顺序插入)。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











