有什么办法可以计算在HashSet中同一个Bucket中登陆的元素数量

时间:2015-01-12 08:48:24

标签: java

有什么方法可以计算在HashSet中同一个Bucket中登陆的元素数量。 我希望编写一个程序,可以计算在HashSet

中同一个存储桶中没有登陆的元素

1 个答案:

答案 0 :(得分:2)

HashSetHashMap支持。 HashMap(source)包含一个Entry对象的数组(称为table),每个Entry都有一个next字段,可用于形成该存储桶的条目链接列表

因此,您可以通过检查这些数据结构来计算元素的数量,遵循条目链并计算它们。

table具有默认(包)访问权限,即它是非公开的,因此您需要使用反射来突破'通过设置访问公共的类。例如,this question中描述了此过程。

或者,您可以根据JDK源代码创建自己的HashSet版本,但可以公开访问您需要检查的字段。