0
다음은 내 해시 테이블에 삽입하는 동안 충돌 감지 방법의 내부입니다. 나는 작은 시험 번호와 협력 나의 논리 권리를 얻기 위해 노력하고있어 변수 해시를 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 있어요. 첫 번째 IF 문은 예를 들어 5 또는 중간에 시작한 경우 첫 번째 인덱스로 되돌아 가고, 두 번째 인덱스는 모든 인덱스를 모두 확인한 후 모두 채워진 경우를위한 것입니다. 당신이 %
을 사용하기 때문에
그래서 문제는'-1 % 10'이 Java에서'-1'입니까? 더티 픽스는'(table.length + hash - 1) % table.length'을 사용하는 것이지만 더 좋은 대안이 있어야합니다. – Blender