hashset 获取当前大小直接调用 size() 方法,返回去重后的元素个数,时间复杂度 o(1);size 表示逻辑元素数量,与底层哈希表容量无关,空集合返回 0。

Java 中 HashSet 获取当前大小,直接调用 size() 方法即可。
使用 size() 方法获取元素个数
HashSet 继承自 AbstractSet,而 AbstractSet 实现了 Collection 接口,其中定义了 size() 方法。该方法返回集合中实际存储的元素个数(即去重后的数量),时间复杂度为 O(1),因为 HashSet 内部维护了一个 size 字段实时更新。
- 调用方式:`set.size()`,返回 int 类型值
- 即使集合为空,也返回 0,不会抛异常
- 注意:不是数组长度,也不是内部桶数组(table)的容量
size() 和 capacity 的区别
初学者容易混淆 size 和容量(capacity)。HashSet 没有公开的 capacity 方法,其底层哈希表的容量是扩容机制决定的内部细节,与 `size()` 无关。
- size():当前不重复元素个数,是你真正关心的“有多少个”
- capacity:底层 HashMap/哈希表数组长度,由初始容量和负载因子触发扩容,不可直接获取(也不建议依赖)
- 例如:new HashSet(16) 创建后,size 是 0;添加 12 个元素,size 是 12;此时内部 table 容量可能是 16 或已扩容为 32,但 size 始终准确反映逻辑大小
实际使用示例
以下代码片段展示常见用法:
<font color="#888"><pre class="brush:php;toolbar:false;">HashSet<string> set = new HashSet();
System.out.println(set.size()); // 输出:0
set.add("a");
set.add("b");
set.add("a"); // 重复,不生效
System.out.println(set.size()); // 输出:2
set.remove("b");
System.out.println(set.size()); // 输出:1</string>Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











