【发布时间】:2013-12-06 21:02:03
【问题描述】:
我正在尝试创建一个 method 来计算哈希表中发生的冲突次数。我会检查整个table,看看有多少buckets 有超过1 个element?
草稿:
public int getCollisions() {
int counter = 0;
for (int i = 0; i < buckets.length; i++) {
if (buckets.length > 1) {
counter += i;
}
}
return counter;
}
【问题讨论】:
-
是的。这就是我会做的。实际上,您会在每个桶长度大于 1 时增加一个计数器。所以,
if (bucket.length > 1) { counter += bucket.length; } -
我可以提出一个草稿方法供您检查@Elliott Frisch 吗?
-
draft方法不是添加碰撞次数,而是添加bucket的索引。
-
那会是 buckets.length,类似于 Elliot 的帖子吗?
-
看我的答案(特别是代码后面的那位),但基本上是的,而且你的 if 语句条件也有问题。