길이가 128자인 부울 문자열 (예 : "01100..001")을 가지고 있습니다 (128 개의 숫자가 0/1 임). 나는 Java에서 효율적인 (빠른) 해시 함수를 찾고 있는데, 이는 128 비트보다 훨씬 더 적은 표현을 생성하고 분명히 적은 충돌로 생성합니다. 아무도 날 도와 드릴까요? 그런 해시 함수가 있습니까? 어떠한 제안 ?Java Fastest Hash Function
답변
Java String
클래스의 .hashCode()
메서드를 사용하면 int
을 반환하며 매우 빠릅니다.
또는 BitSet
에 데이터를 저장하려는 경우 Pulsar가 제안하는대로 java.util.BitSet
에서 .hashCode()
메서드를 사용할 수 있습니다.
나는'String'을'BigInteger'로 먼저 변환하고'.hashCode()'메서드를 호출한다는 것을 제외하고는 말할 것입니다. 하지만 당신이 제안한 것처럼 원래의 문자열을 해쉬하는 것이 더 빠르다 고 생각합니다. 왜 16 바이트가 128 바이트의'String'으로 저장되기를 원하는지 궁금 할 것입니다. 이것은 공간의 막대한 낭비처럼 보입니다. – ZeroOne
고마워요. 시도하는 것이 좋을 것이다. 그러나 충돌 가능성을 설명하는 문서가 있습니까? – Arpssss
@ ZeroOne, 나는 또한 BigInt로 변환하고 hashcode를 호출 할 생각이다. 왜냐하면, 충돌이 적을 것이라고 생각합니다. – Arpssss
대신에 java.util.BitSet
을 사용 해본 적이 있습니까? 사용하고있는 작업에 따라 훨씬 쉽고 효율적으로 사용할 수 있습니까? http://docs.oracle.com/javase/6/docs/api/java/util/BitSet.html 또한 .hashCode()
방법이 있습니다.
고마워. 시도하는 것이 좋을 것이다. 그러나 충돌 확률을 나타내는 문서가 있습니까? – Arpssss
내가 아는 것은 아닙니다. 2004 년 (버그 퍼레이드 참조 : http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4979028) 및 java doc show (hash?)에서 해시 코드 계산 방식이 개선되었다는 것을 알고 있습니다. 소스 물론 사용할 수 있습니다. http://docs.oracle.com/javase/6/docs/api/java/util/BitSet.html#hashCode() –
문자열의 해시를 계산해야하는 경우 String
클래스의 hashCode()
메서드를 사용하기 만하면됩니다. 구현에 따라이 값을 빠르게 계산할 수있는 몇 가지 최적화가 이루어집니다. String
Class 구성 hashCode()
OpenJDK 방법의 구현 예로서
hash
속성의 값을 캐시 번만 계산되어야한다.
128 자의 문자열에 128 비트의 해시가 있다고 누가 알았습니까? Java에서 hashCode()
메소드에 의해 리턴 된 모든 해시는 int
유형이고 Java의 int는 32 비트를 사용하여 표시됩니다.
- 1. java swing stop function
- 2. Java Fitness Function - Scales
- 3. Java Linked Hash 맵을 반복하는 방법은 무엇입니까?
- 4. native move 명령 - java function
- 5. mootools jquery에서 hash()?
- 6. hash() 대 crypt() 함수 비교
- 7. 해시 (Java with Hash) (소금 포함 또는 제외)
- 8. <hash></hash> from format.xml
- 9. Rails에서 Dynamic Hash finder 및/또는 Hash Finder는 무엇입니까?
- 10. Perl에서 if (% hash)와 if (% hash 정의)의 차이점은 무엇입니까?
- 11. 레일 ActiveRelation to hash
- 12. Google 색인 "www.example.com/#!hash"?
- 13. 나는 URL을 #hash 양식을
- 14. Hash 객체의 깊이를 줄입니다.
- 15. Ruby Hash Algorithm
- 16. keytool md5 hash ascii?
- 17. python valuetype hash mixin
- 18. Hash sha-512
- 19. PHP - hash_pbkdf2 function
- 20. 클래스 {function {function}}에서 $ this를 어떻게 참조합니까?
- 21. hashCode 메소드에 객체 # hash (Object ...) 사용?
- 22. Ruby Hash & Array to XML
- 23. 동적 hash-> 클래스 태그
- 24. serialize list has hash table
- 25. O (1) hash look ups?
- 26. PrototypeJs의 Hash() 클래스에 해당하는 jQuery?
- 27. .hash 문자열 방법은 어떻게 작동합니까?
- 28. Perl Hash of Hashes 문제
- 29. JSTL로 URL # hash 가져 오기
- 30. Locality Sensitive Hash 사용법 --LSHKIT
128 비트 표현으로 얻을 수있는 0보다 충돌이 적습니까? – eggyal
@eggyal, 고마워. 좋은 개념. 그것은 나를 많이 도울 것입니다. :) – Arpssss
단지 128 비트 값을 저장하기 위해 문자열을 사용하는 것은 나에게 약간의 과잉 공격, 기억 낭비 및 특히 성능에 신경 쓰는 경우 - 확실히 최선의 선택이 아닌 것처럼 보입니다. – MRalwasser