2013-12-12 51 views
2

我正在用java創建一個散列表,並且需要做一些分析。我的一個分析任務是比較散列表中有多個附加值(散列衝突的百分比,本質上)的插槽數量。散列表數組搜索中的空指針異常

給定一個素數(任意決定),我用散列表填充隨機數。我生成的隨機數量等於0.8 * primeNumber。我正在使用單獨的鏈接來處理哈希衝突。雖然哈希表中的數組存儲節點,但每個節點都可以指向另一個節點(因此它實際上是一個鏈接列表數組)。

我的問題是當我試圖遍歷桶(我們的數組持有節點),以查看數組中的每個位置(每個節點)是否有下一個元素(下一個元素是指下一個節點,這意味着哈希衝突發生在該位置)。我一直遇到一個空指針異常,而且它似乎是在檢查節點是否指向下一個ndoe。

回答

1

變化

if (hPrime.getBucket()[i].hasNext()) { 

if (hPrime.getBucket()[i] != null && hPrime.getBucket()[i].hasNext()) {