본문 바로가기

Java

Java HashMap, Hashtable

 

1. Hashtable

- Vector와 ArraysList의 관계같이 HashMap의 예전것으로 보면됨 -> HashMap 사용 권장

 

2. HashMap

- 해싱(hasing) 기법으로 데이터 저장, 데이터가 많아도 검색이 빠름

- Map인터페이스를 구현, 데이터를 키와 값의 쌍으로 저장

 

키(key): 컬렉션 내의 키 중에서 유일

값(value): 키와 달리 데이터 중복 허용

 

3. 해싱(hasing)

- 해시함수(hash function)를 이용해서 데이터를 저장하고 읽어 오는 것

- 해시함수로 해시테이블(hash table)에 데이터를 저장, 검색

 

4. 해시 함수(hash fuction)

- object.hash()메소드 사용

- 같은 키에 대해 항상 같은 해시코드 반환(서로 다른 키일지라도 같은 값의 해시코드를 반환 할 수도 있음)

 

5. 해시테이블(hash table)

- 배열과 링크드 리스트가 조합된 형태

- 배열의 장점인 접근성과 링크드리스트의 장점인 변경에 유리한 점을 이용할 수 있음

 

 

6. 해싱의 과정

1) 키로 해시 함수를 호출해서 해시코드를 읽음

2) 해시코드(해시함수의 반환값)에 대응하는 링크드리스트를 배열에서 찾음)

3) 링크드 리스트에서 키와 일치하는 데이터를 찾음