gpt4 book ai didi

java - 数组迭代、跳跃

转载 作者:行者123 更新时间:2023-12-02 00:12:06 24 4
gpt4 key购买 nike

以下是插入到我自己的哈希表中时进行冲突检测的方法的内部。我正在使用小的测试数字并尝试使我的逻辑正确,变量哈希设置为 0,table.length 为 10。

 else
{
//problem here
int initial=(hash-1)%table.length;


while (table[hash]!=null)
{
hash+=1;
System.out.println(initial);

if (hash==table.length)
{
hash=0;
}

if (hash==initial)
{
System.out.println("FULL!");
break;
}

变量初始值必须是我当前的索引(哈希)之前的索引。我的问题是,如果哈希值为 0,则初始值需要设置为 9。我认为这可行,但例如,当哈希值设置为 0 时,我得到 -1。例如,如果您从中间的 5 或其他位置开始,第一个 IF 语句将循环回到第一个索引,第二个 IF 语句用于当您检查完所有索引并且它们都已满时。

最佳答案

由于您使用%,因此不存在溢出风险,因此您只需将该行更改为

int initial = (hash - 1 + table.length) % table.length;

解决这个问题。

关于java - 数组迭代、跳跃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12590730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com