对不起,如果我问一个愚蠢的问题,很久没有用Java练习......我写了一些代码来模拟哈希表.这是我的代码的一个功能:
protected int find(K key){
int avail=-1;
int i=hashValue(key);
int j=i;
do{
Entry<K, V> element = bucket[i];
if(element==null){
if(avail<0){
avail=i;
}
break;
}
if(key.equals(element.getK())){
return i; // found
}
if(element==this.used){
if(avail<0){
avail=i;
}
}
i=(i+1)%capa;
}while(i!=j);
return -(avail+1); // return a hash address
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是,当我将if语句if(element == null)改回一点(除了结构的最开头)时,它会警告我这是一个死代码:
protected int find(K key){
int avail=-1;
int i=hashValue(key);
int j=i;
do{
Entry<K, V> element = bucket[i];
if(key.equals(element.getK())){
return i; // found
}
if(element==this.used){
if(avail<0){
avail=i;
}
}
// dead code then
if(element==null){
if(avail<0){ …Run Code Online (Sandbox Code Playgroud)