죄송합니다. 바보 같은 질문을하면 Java로 연습 할 필요가 없습니다. 해시 테이블을 시뮬레이트하는 코드를 작성했습니다. 여기 내 코드의 한 기능입니다 :다른 곳에서 Java dead code
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
}
이상한 것은,이다 나는 다시 if 문 경우 (요소 == 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){
avail=i;
}
break;
}
//dead code then
i=(i+1)%capa;
}while(i!=j);
return -(avail+1); // return a hash address
}
누구에게 잘못 되었나요? 이미 위의 라인을 언급 한 이후 두 번째 코드 예제에서는
Erwin의 답은 spot-on이지만, 호기심에서 벗어나 데드 코드 피드백을주는 것은 무엇입니까? –