Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有什么方法可以计算HashSet中落在同一个Bucket中的元素数吗_Java - Fatal编程技术网

Java 有什么方法可以计算HashSet中落在同一个Bucket中的元素数吗

Java 有什么方法可以计算HashSet中落在同一个Bucket中的元素数吗,java,Java,是否有任何方法可以计算HashSet中落在同一个桶中的元素数。 我想写一个程序,可以在HashSetHashSet有一个HashMap支持的情况下,计算落在同一个bucket中的元素的数量。HashMap()包含一个条目对象数组(称为表),每个条目都有一个next字段,可用于形成该bucket的条目链接列表 因此,您可以通过检查这些数据结构、遵循条目链并对其进行计数来计算元素的数量 表具有默认(包)访问权限,即它是非公共的,因此您需要使用反射通过将访问权限设置为公共来“闯入”类。例如,中描述了该

是否有任何方法可以计算HashSet中落在同一个桶中的元素数。
我想写一个程序,可以在HashSet

HashSet
有一个
HashMap
支持的情况下,计算落在同一个bucket中的元素的数量。HashMap()包含一个条目对象数组(称为
),每个条目都有一个
next
字段,可用于形成该bucket的条目链接列表

因此,您可以通过检查这些数据结构、遵循条目链并对其进行计数来计算元素的数量

具有默认(包)访问权限,即它是非公共的,因此您需要使用反射通过将访问权限设置为公共来“闯入”类。例如,中描述了该过程


或者,您可以基于JDK源代码创建您自己的HashSet版本,但对需要检查的字段具有公共访问权。

这需要访问HashMap的非公共成员,这只能通过反射来完成。您还可以将检查代码与
HashMap
(即
java.util
)。您不需要反射,但可以直接访问
属性。不漂亮,我知道,但反射也不漂亮;)是的,这可能容易得多。@DNA您可以举一些例子加以说明,不允许将类放在java包中,很遗憾,这样做不起作用。@user1121883这是不正确的
HashSet
构建在
HashMap
的基础上,它重新散列
hashCode()
提供的哈希代码。