Java 哈希表,查找函数
我有一个哈希表数据结构,所有函数都可以正常工作,但是查找函数不能正常工作(它返回元素所在的位置) 大写键(K)是类型对象的数组,小写键(K)是元素-它的类型是泛型-我搜索它的位置,当我添加一个像1这样的数字并搜索它时,它返回它的正确位置,这将在我们的示例1中,但当我添加一个像3525这样的大数字时,它返回-1,这意味着它找不到它 注意:add函数以整数形式工作:number%数组大小(在我们的示例3525中:其位置9)。 有谁能帮我解释一下为什么会这样Java 哈希表,查找函数,java,data-structures,hashtable,Java,Data Structures,Hashtable,我有一个哈希表数据结构,所有函数都可以正常工作,但是查找函数不能正常工作(它返回元素所在的位置) 大写键(K)是类型对象的数组,小写键(K)是元素-它的类型是泛型-我搜索它的位置,当我添加一个像1这样的数字并搜索它时,它返回它的正确位置,这将在我们的示例1中,但当我添加一个像3525这样的大数字时,它返回-1,这意味着它找不到它 注意:add函数以整数形式工作:number%数组大小(在我们的示例3525中:其位置9)。 有谁能帮我解释一下为什么会这样 另一个注意事项:3525%12=9,这意味
另一个注意事项:3525%12=9,这意味着它在数组中的9位置,当我返回键[9]时,它给我3525,这意味着它确实存在,所以为什么查找不起作用???我发现任何小于128的数字都可以找到,但大于128的数字都找不到问题我的东西与ascii码有关,但我现在不知道两者之间的关系这是我问题的解决方案这个问题与ascii码无关,它与java中的Integer类有关,有关自动装箱和取消装箱的更多信息,请搜索
public int lookUp(T key){
int x =0;
boolean found = false;
while(Key[place]!=null){
if(Key[place] == key){
found = true;
break;
}
place =(place +probingLinear(x))%v;
x++;
}
if(found)
return place;
else
return -1;
}