调用 clear() 方法即可清空 hashset 中所有元素,它直接移除全部元素使 size() 为 0,对象仍存在且可继续使用;时间复杂度 o(n),不改变容量与加载因子,线程不安全需手动同步。

调用 clear() 方法即可清空 HashSet 中的所有元素。
使用 clear() 方法
这是最直接、最常用的方式。它会移除集合中所有元素,使 size() 返回 0,但 HashSet 对象本身仍存在,无需重新 new。
- 语法简单:`set.clear();`
- 时间复杂度为 O(n),内部遍历哈希表并清空每个桶
- 不会改变 HashSet 的初始容量或加载因子
其他方式(不推荐)
虽然也能达到“清空”效果,但存在明显缺点:
- 重新赋值新对象:`set = new HashSet();` —— 原对象未被清空,只是引用指向了新集合,旧集合若还有其他引用则未释放
- 逐个 remove:循环调用 `remove()` —— 效率低、代码冗余,且容易因并发修改抛出异常
注意事项
清空后集合状态是安全可用的,可继续 add 元素:
- clear() 是线程不安全的,多线程环境下需自行同步
- 如果 HashSet 存储的是自定义对象,确保其 equals()/hashCode() 正确实现不影响清空操作
- clear() 不会触发任何回调或监听器(Java 集合本身无此类机制)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











