有什么方法可以计算 HashSet 中同一个 Bucket 中的元素数量。 我希望编写一个程序,可以计算 HashSet 中同一存储桶中的元素数量
最佳答案
HashSet
由 HashMap
支持。 HashMap ( source ) 包含一个 Entry 对象的数组(称为 table
),每个 Entry 都有一个 next
字段,可用于形成一个链表该存储桶的条目。
因此,您可以通过检查这些数据结构、跟踪条目链并对它们进行计数来计算元素的数量。
table
具有默认(包)访问权限,即它是非公共(public)的,因此您需要使用反射通过将访问权限设置为公共(public)来“闯入”该类。此过程在 this question 中有描述。 , 例如。
或者,您可以基于 JDK 源代码创建您自己的 HashSet 版本,但可以公开访问您需要检查的字段。
关于java - 有什么方法可以计算 HashSet 中同一个 Bucket 中的元素数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27898151/