HashMap과 Hashtable
- 저장 순서 X, 키 중복 X, 값 중복 O
- Map 인터페이스를 구현.
- 데이터를 키와 값의 쌍(key, value)으로 저장
- HashMap(동기화X)은 Hashtable(동기화O)의 신버전이다.
HashMap
- Map인터페이스를 구현한 대표적인 컬렉션 클래스
- 순서를 유지하려면 LinkedHashMap클래스를 사용하면 된다.
TreeMap
- 범위 검색과 정렬에 유리한 컬렉션 클래스
- HashMap보다 데이터 추가, 삭제에 시간이 더 오래 걸린다(비교하고 저장하다 보니!)
HashMap의 키(key)와 값(value)
- 해싱(hashing) 기법으로 데이터를 저장
- Map인터페이슬을 구현.
- 데이터를 키와 값의 쌍으로 저장(Entry!)
키(key): 컬렉션 내의 키(key) 중에서 유일해야 한다.
값(value): 키(key)와 달리 데이터의 중복을 허용한다.
HashMap map = new HashMap();
map.put("myId", "1234");
map.put("asdf", "1111");
map.put("asdf", "1234");
저장된 것을 확인하면
똑같은 키로 다른 값이 들어오면 저장이 안되는것이 아니라 새로운값으로 덮어 씌워준다.
‣ 참고용! JDK 버전 업이되면서 현재 객체지향적 코드도 달라졌을 것!
해싱(hashing)
해쉬함수를 이용해서 저장하고 읽어오기.
- 환자 정보 관리
- 해시함수(hash function)로 해시테이블(hash table)에 데이터를 저장, 검색
배열의 장점: 접근성
링크드리스트의 장점: 변경 유리
이 두가지 장점을 섞은 것 = hash table!
Objects.hash()로 쓴다.
- 해시테이블에 저장된 데이터를 가져오는 과정