有什么方法可以计算在HashSet中同一个Bucket中登陆的元素数量。 我希望编写一个程序,可以计算在HashSet
中同一个存储桶中没有登陆的元素答案 0 :(得分:2)
HashSet
由HashMap
支持。 HashMap(source)包含一个Entry对象的数组(称为table
),每个Entry都有一个next
字段,可用于形成该存储桶的条目链接列表
因此,您可以通过检查这些数据结构来计算元素的数量,遵循条目链并计算它们。
table
具有默认(包)访问权限,即它是非公开的,因此您需要使用反射来突破'通过设置访问公共的类。例如,this question中描述了此过程。
或者,您可以根据JDK源代码创建自己的HashSet版本,但可以公开访问您需要检查的字段。