왜 HashSet의 단지 약간의 공간을 절약하기 위해의 HashMap의 내부 대신 비트 배열을 사용할 수 없습니다?

hatellla :

나는 자바에서 그 HashSet의 내부적 HashSet에이 요소를 포함 여부 확인의 HashMap 사용을 참조하십시오. 그것은 단지 문자열에서 모든 해시 결과를 저장하는 비트 맵을 사용할 수 없습니다. 예. 문자열 ABC 해시는 12 인덱스 대답 우리는 그냥 존재 함을 표시하려면이 인덱스를 설정할 수 있습니다. 우리는 데이터의 실제 키를 저장하지 않는의 HashMap에 비해 그것은 공간을 많이 절약 할 것입니다.

숀 패트릭 플로이드 :

HashSet의이 포함 된 사용 된 경우 () 조회 만, 그와 같은 최적화 할 수 있습니다. 해시 충돌이 항상 발생할 수 있기 때문에 여전히 위험 할 것입니다. 나는 당신을 위해 무엇을 찾고있는 것은 생각 블룸 필터 (, 그냥 위음성 배제 블룸 필터가 정확한 답변을 제공하지 않습니다).

해시 세트 모음입니다, 그리고 컬렉션에 저장된 값을 검색 할 수있는 가능성을 가질 필요가있다. 해시는 해시에서 원래 문자열을 계산하지 수, 되돌릴 수 없습니다.

추천

출처http://43.154.161.224:23101/article/api/json?id=118110&siteId=1