我在java中创建一个哈希表,需要做一些分析。我的一个分析任务是比较散列表中具有多个附加值的插槽数(实质上是散列冲突的百分比)。
给定素数(任意决定),我用随机数填充哈希表。我生成的randoms数量等于0.8 * primeNumber。我使用单独的链接来处理哈希冲突。虽然散列表中的数组存储节点,但每个节点都可以指向另一个节点(因此它实际上是一个链接列表数组)。
我的问题是当我试图遍历存储桶(我们的数组保持节点)以查看数组中的每个位置(每个节点)是否具有下一个元素时(通过下一个元素我的意思是下一个节点,这意味着哈希冲突发生在那个位置)。我一直遇到一个空指针异常,似乎是在检查节点是否指向下一个ndoe时。
答案 0 :(得分:1)
更改
if (hPrime.getBucket()[i].hasNext()) {
到
if (hPrime.getBucket()[i] != null && hPrime.getBucket()[i].hasNext()) {