2013-11-26 3 views
0

현재 확장 가능 해시를 구현하려고합니다. 버킷을 사용하여 텍스트 파일에서 가져온 ID를 저장합니다. 각 ID (예 : 10110110111)는 고정 크기의 버킷으로 이동합니다. 각 버킷은 노드 배열입니다. 내 큰 문제는 각 버킷을 비트 패턴으로 표현하는 방법을 결정하려고하는 것입니다. 예 :비트 패턴을 나타내는 각 배열

000 
001 
010 
011 
100 
101 
110 
111 

각 버킷은 위의 비트 패턴을 (적어도 1) 나타냅니다. 버킷이 고정 될 수있는 최대 크기 (고정 크기 임)에 도달하고 다른 것이 들어가야하는 경우 비트 패턴이 1 자리 증가하여 이제 0000, 0001, 0010 ... 등이됩니다.

본질적으로 각 버킷을 적어도 하나의 비트 패턴으로 표현하여 각 ID를 각 버킷의 비트 패턴과 비교하고 그에 적합한 지점을 찾을 수있는 방법에 대해 혼란 스럽습니다.

+0

것을 할 수 있습니다. 무슨 뜻인지 몇 가지 예를 보여주십시오. –

답변

0

정수를 사용하여 ID를 나타낼 수 있습니다. Integer.toBinaryString(myId);을 사용하여 텍스트 파일의 비트 문자열과 비교할 수 있습니다.

0

각 버킷을 고유 번호로 만드십시오. 0부터 시작하여 1 씩 증가 할 수 있습니다.이 숫자는 10의 정수입니다.하지만 버켓 패턴을 바이너리로 변환하여 저장하십시오. 다시 바이너리로 변환해야하는 경우

Integer.toString(x, 2) 

은, 당신이이 명확하지 않다 이런 식으로

Integer.valueOf(binary_value, 2)