위로
아래
Hash
HashFunction
- 해시함수
- 단방향 암호화 기법 (암호화는 수행하지만 복호화는 불가능)
- 입력된 임의의 데이터를 고정된 길이의 데이터로 변경하여 출력해준다.
- 해시를 만들기 위해 필요하다
Hash
- 해시
- 단방향 암호화 기법인 해시함수(HashFunction)을 이용하여 생성된 고정된 길이의 비트열
Hashing
- 해싱
- 해시함수를 통해, 원래 데이터 키(key)를 해시값(Hash value)로 변환하는 과정
HashCollision
- 해시충돌
- 변환된 해시값이 중복되는 경우
- 해결 방법
- 체이닝 (Chaining)
- 개방 주소법 (OpenAddressing)
HashMap & HashTable
Synchronization
- 동기화
HashTable
- 동기화 보장이 필요할 때 사용
- Thread-safe하다
- 멀티스레드 환경이 아니라면 HashMap보다 성능이 떨어진다
- key에 null을 허용하지 않는다.
- not fail-fast Enumeration을 제공한다
- 컬렉션 프레임워크 이전에 존재하던 것으로, 가급적 사용하지 않는 것이 좋다.
HashMap
- 동기화가 필요 없을 때 사용
- Thread-safe하지 않다
- key에 null을 허용한다.
- Enumeration을 제공하지 않는다
- 보조해시를 사용하기 때문에 HashTable에 비하여 해시충돌이 덜 발생한다
- 사용 이유 : List를 사용하면 시간복잡도 O(n) (처음부터 주루룩 검색해야하니까), HashMap을 사용하면 O(1) (key를 검색하면 value가 나오니까)이라서 성능이 더 좋다.