hashset 获取元素数量直接调用 size() 方法,返回实际元素个数(去重后),时间复杂度 o(1),安全返回 0;非数组长度或哈希表容量,勿用 toarray().length 或混淆 isempty(),并发需同步。

Java 中 HashSet 获取元素数量,直接调用 size() 方法即可。
使用 size() 方法获取元素个数
HashSet 继承自 AbstractSet,而 AbstractSet 实现了 Collection 接口,其中定义了 size() 方法。该方法返回当前集合中实际存储的元素个数(不包含重复元素)。
- 时间复杂度为 O(1),因为 HashSet 内部维护了一个
size字段,每次增删都会更新它 - 即使集合为空,
size()也安全返回 0,不会抛异常 - 注意:不是数组长度,也不是底层哈希表容量(capacity),而是实际元素个数
代码示例
下面是一个简单演示:
<font color="#888"><pre class="brush:php;toolbar:false;">HashSet<string> set = new HashSet();
System.out.println(set.size()); // 输出:0
set.add("apple");
set.add("banana");
set.add("apple"); // 重复,不生效
System.out.println(set.size()); // 输出:2
</string>
常见误区提醒
- 不要用
toArray().length来获取数量——效率低且没必要 - 不要混淆
size()和isEmpty():后者只判断是否为 0,前者返回具体数值 - 多线程环境下若 HashSet 未同步,
size()的结果可能不准确,应使用ConcurrentHashMap.newKeySet()或加锁保障一致性
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











