【发布时间】:2019-11-19 12:29:23
【问题描述】:
我如何通过 jUnit 测试证明 HashSet 处理了冲突。例如,我可以在 for 循环中用 10000 个元素填充 HashSet,但是哪个参数应该告诉我我有冲突,我想考虑一下集合大小,但不太确定。
【问题讨论】:
-
你如何定义碰撞?您希望单元测试究竟测试什么?
-
放入两个相等的项,并断言大小为 1。或者,如果您的意思是 hash 冲突,则放入两个具有相同哈希的不相等项,并断言大小为 2。
-
@AndyTurner 我会回答的。我正要写类似的东西。
-
哈希码冲突。如果我添加具有相同哈希码的项目,它应该显示,而不是 HashSet 在内部对相同的哈希码进行罚款并处理它,类似这样
-
你不应该证明这一点。
HashSet的作者已经这样做了。您应该专注于测试您的代码。
标签: java collections hashset