고유 한 문자열 집합을 고유 ID로 변환하는 스칼라 코드를 작업 중입니다. HashCode()를 적용했지만 음수를 얻었고 양수 만 사용해야합니다. 음수 값을 없애기 위해 math.abs를 사용해야한다는 것을 알고 있지만 이것이 올바른 해결책인지 확실하지 않습니다. 이 같은 뭔가가 내 문제 해결 전에 내가 읽은 경우 는hashCode()를 적용 할 때 긍정적 인 결과 만 얻는 방법?
math.abs(hashCode()) * constant % size
는 어떻게 올바른 일정을 확인할 수 있습니까? 크기는 총 문자열 수를 의미합니까?
위의 질문은 math.abs 만 사용하여 질문을 해결했지만 총 문자열 수가 큰 경우 오버플로가 발생할 수 있고 음수를 얻을 기회가 있습니다. 결과에 상수를 곱하고 크기의 mod를 취하면 도움이 될 수 있습니다. 이것이 상수와 크기를 결정하는 방법을 이해해야하는 이유입니다.
고유 한 문자열에 대해 고유 번호를 얻는 또 다른 방법이 있습니까?
[고유 ID에 해시 코드 사용] (https://stackoverflow.com/questions/21368492/using-hashcode-for-a-unique-id) – Piro
내 질문에 대한 답변을 얻지 못했습니다. 언급 한 게시물. – saad
Math.abs() 혼자서 사용하는 것에 결함이 있다는 이유는 무엇입니까? 항상 양수가 반환되는 것은 아니므로 해시 코드가 고유하지 않다고 설명하는 것이 어떻습니까? – Piro