java - 有什么方法可以计算 HashSet 中同一个 Bucket 中的元素数量

标签 java

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

最佳答案

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

因此,您可以通过检查这些数据结构、跟踪条目链并对它们进行计数来计算元素的数量。

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

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

关于java - 有什么方法可以计算 HashSet 中同一个 Bucket 中的元素数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27898151/

相关文章:

java - 将 YML/Java 配置 Autowiring 到 Spring Boot Bean

java - 异常反序列化甚至简单的对象[JAVA]

java - 安卓3.3.0更新,错误: Cause: invalid type code: 68

java - 如何将对象从一个类传输到另一个类 - JAVA

java - 用于启用/禁用用户的单个按钮如何使用 Selenium Webdriver 识别按钮状态

java - Spark Java错误:lambda expressions are not supported in -source 1. 5

java - 我可以通过spring-roo中的xx.java修改xx_Roo_JavaBean.aj中的setter getter吗?

java - 找到图中 X 坐标为零的点

java - 托管在 Heroku 上的 Spring Boot 项目 - Web 进程在启动后 90 秒内无法绑定(bind)到 $PORT

Java线程中断后处于 Activity 状态