위로 아래

Hash

HashFunction

  1. 해시함수
  2. 단방향 암호화 기법 (암호화는 수행하지만 복호화는 불가능)
  3. 입력된 임의의 데이터를 고정된 길이의 데이터로 변경하여 출력해준다.
  4. 해시를 만들기 위해 필요하다

 

Hash

  1. 해시
  2. 단방향 암호화 기법인 해시함수(HashFunction)을 이용하여 생성된 고정된 길이의 비트열

 

Hashing

  1. 해싱
  2. 해시함수를 통해, 원래 데이터 키(key)를 해시값(Hash value)로 변환하는 과정

 

HashCollision

  1. 해시충돌
  2. 변환된 해시값이 중복되는 경우
  3. 해결 방법
    1. 체이닝 (Chaining)
    2. 개방 주소법 (OpenAddressing)

 

 


HashMap & HashTable

 

Synchronization

  1. 동기화

 

HashTable

  1. 동기화 보장이 필요할 때 사용
  2. Thread-safe하다
  3. 멀티스레드 환경이 아니라면 HashMap보다 성능이 떨어진다
  4. key에 null을 허용하지 않는다.
  5. not fail-fast Enumeration을 제공한다
  6. 컬렉션 프레임워크 이전에 존재하던 것으로, 가급적 사용하지 않는 것이 좋다.

 

HashMap

  1. 동기화가 필요 없을 때 사용
  2. Thread-safe하지 않다
  3. key에 null을 허용한다.
  4. Enumeration을 제공하지 않는다
  5. 보조해시를 사용하기 때문에 HashTable에 비하여 해시충돌이 덜 발생한다
  6. 사용 이유 : List를 사용하면 시간복잡도 O(n) (처음부터 주루룩 검색해야하니까), HashMap을 사용하면 O(1) (key를 검색하면 value가 나오니까)이라서 성능이 더 좋다.