有没有办法在HashSet中统计落地在同一个Bucket中的元素的数量。我希望写一个程序,可以计算在同一桶在HashSet中的元素落地的数量
发布于 2015-01-12 16:52:34
HashSet
由HashMap
支持。HashMap (source)包含一个Entry对象数组(称为table
),每个条目都有一个next
字段,该字段可用于形成该存储桶条目的链表。
因此,您可以通过检查这些数据结构、跟随条目链并对它们进行计数来计算元素的数量。
table
具有默认(包)访问权限,即它是非公共的,因此您需要使用反射通过将访问权限设置为public来“闯入”该类。例如,在this question中描述了这个过程。
或者,您可以基于HashSet源代码创建自己的JDK版本,但对需要检查的字段具有公共访问权限。
https://stackoverflow.com/questions/27898151
复制相似问题