Map 的 size 属性直接返回当前键值对数量,是只读、实时更新的内置属性,调用无需括号;Object 无此属性,需手动计算;size 准确支持任意类型键,包括 null、undefined 和对象。

Map 的 size 属性直接返回当前键值对的数量,无需遍历或手动计数,是只读属性,用法简单可靠。
size 是只读属性,实时反映 Map 中的元素个数
每次调用 set()、delete() 或 clear() 后,size 会自动更新。它不是方法,不能加括号调用(比如 map.size() 是错误的)。
-
new Map().size→0 -
const m = new Map([['a', 1], ['b', 2]]); m.size→2 -
m.set('c', 3); m.size→3 -
m.delete('a'); m.size→2
与 Object 对比:Object 没有内置 size,需额外计算
普通对象没有 size 属性,要获取“键值对数量”得靠 Object.keys(obj).length 或 Reflect.ownKeys(obj).length,且不包含 Symbol 键(除非显式处理)。而 Map 的 size 天然准确、高效、语义清晰。
当用户要求为 Java 代码添加注释、修改注释、审查注释、整理注释格式,或要求按照代码注释规范处理 Java 文件时,使用本技能。本技能用于统一生成和维护 Java 类注释模板、按 Git 对比 release 判断版本号、补充每行代码上方中文块注释、调整注释空行规则,并保持 Java 文件 UTF-8 无 BOM 编码。典型触发场景包括:补充类注释、更新 @version、检查 @author 来源、整理行尾注释、把注释放到代码上一行、检查注释是否符合规范、构建前检查 Java 注释风格。
注意 null/undefined 和重复 key 不影响 size 计算逻辑
Map 允许任意类型作键(包括 null、undefined、对象、Symbol),只要键不完全相等(SameValueZero 判断),就视为不同条目,size 都会如实累加。
立即学习“Java免费学习笔记(深入)”;
-
const m = new Map(); m.set(null, 1); m.set(undefined, 2); m.size→2 -
m.set({}, 'a'); m.set({}, 'b'); m.size→4(两个空对象是不同键)
实际使用建议
检查 Map 是否为空时,优先用 map.size === 0,比 map.keys().next().done 更简洁高效;循环前判断数量也推荐直接读 size,避免创建迭代器开销。

















