我遇到了一个可怕的stackoverflowerror,我想这是由于我的深度递归引起的(调试器帮助我确定了这一点...)。有没有人可以指导我将我的递归转换为循环?
H<V>.Pair currPair = (H<V>.Pair) arr[startPos];
if (arr[startPos] == null) {
return null;
}
if (currPair.key.equals(key)) {
return currPair.value;
} else {
return find(gNL(startPos, ++stepNum, key), key, stepNum);
}
}
更具体地说,
return find(getNextLocation(startPos, ++stepNum, key), key, stepNum);
会导致递归。