java hashcode javascript 로
Java 의 String.HashCode() 의 구현
java api 문서(ref. 1) 에 String.hashCode() 의 계산방법이 나와있다.
계산식은 다음과 같다.
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
java 에서 hashCode() 는 .equals()
를 호출할 때 true 가 나오는 값이라면, 같은 ’hash 값’을 갖도록 하면 된다.
javascript version
String.prototype.hashCode = function(){
var hash = 0;
if (this.length == 0) return hash;
for (i = 0; i < this.length; i++) {
char = this.charCodeAt(i);
hash = ((hash<<5)-hash)+char;
hash = hash & hash; // Convert to 32bit integer
}
return hash;
}
Reference
- String (Java Platform SE 7 )
- How String Hashcode value is calculated? - GeeksforGeeks
- [Java/Tip] String.hashCode()는 유일한 값을 반환할까?
- Javascript implementation of Java’s String.hashCode() method – Manwe
- The 3 things you should know about hashCode() - EclipseSource : hashCode() 를 key 로 쓰면 안되는 이유등이 나와 있다. 간단한 예로, "Aa" and "BB" 가 같은 hashCode 를 갖는다 한다.
댓글 없음:
댓글 쓰기