清空 Map 和 Set 应使用 clear() 方法:Map 调用 clear() 移除所有键值对,Set 同样调用 clear() 移除所有元素;二者均为 O(1) 时间复杂度,不改变引用,原实例可继续使用。

清空 Map 和 Set 中的所有数据项,最直接、标准的方式是调用它们各自的 clear() 方法。
Map 清空:使用 clear()
Map 实例提供 clear() 方法,会移除所有键值对,使 Map 变为空:
-
myMap.clear();—— 立即清空,无返回值,操作后myMap.size变为0 - 注意:不能用
myMap = new Map()替代,这只会让变量指向新对象,原引用(如被其他变量或闭包持有)仍存在旧数据
Set 清空:同样用 clear()
Set 实例也支持 clear() 方法,效果与 Map 一致:
当用户要求为 Java 代码添加注释、修改注释、审查注释、整理注释格式,或要求按照代码注释规范处理 Java 文件时,使用本技能。本技能用于统一生成和维护 Java 类注释模板、按 Git 对比 release 判断版本号、补充每行代码上方中文块注释、调整注释空行规则,并保持 Java 文件 UTF-8 无 BOM 编码。典型触发场景包括:补充类注释、更新 @version、检查 @author 来源、整理行尾注释、把注释放到代码上一行、检查注释是否符合规范、构建前检查 Java 注释风格。
-
mySet.clear();—— 移除所有元素,mySet.size变为0 - 和 Map 一样,重新赋值(如
mySet = new Set())不等于“清空”,而是替换引用
为什么不推荐遍历删除?
虽然可以用 for...of 或 forEach 配合 delete(Map)或 delete/remove(Set)逐个清除,但没必要:
-
clear()是内置高效实现,时间复杂度 O(1),而遍历是 O(n) - 遍历时修改集合可能引发意外行为(尤其在 forEach 中直接调用 delete 时逻辑易错)
- 代码更冗长,可读性和维护性差
小提醒:clear() 不影响引用本身
clear() 只清内容,不销毁对象。原 Map / Set 实例仍可继续使用:
const m = new Map([[1, 'a']]); m.clear(); m.set(2, 'b'); // ✅ 正常工作- 如果想彻底释放内存且确认不再使用,可额外设为
null,但通常不需要
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










