반응형
Map
- 키와 쌍을 가짐.
- 키를 중복 x, 값은 중복 o
- Map은 내부적으로 Entry배열을 가지고 있는데 Entry는 key, value 쌍을 의미한다.
대략 코드는 아래와 같이 생겼다. - Collection interace는 아니지만, 동일하게 사용되기 위해 Entry를 Set으로 반환한다.
HashMap
특징
- HashMap(동기화 x)은 Hashtable(동기화 O)의 신버전
- 순서를 유지하려면, LinkedHashMap 클래스를 사용하면 된다.
- Hashing 기법으로 데이터를 저장한다. 데이터가 많아도 검색이 빠르다.
hashing
- 해싱이란 해시함수를 이용하여 해시 테이블에 데이터를 저장하고, 읽어오는 것을 의미한다.
java에서는 hashCode() - 해시 함수란 key를 인자로 주면 해시 코드를 만들어 준다.
해시 코드는 배열에서 인덱스라고 생각하면 된다.
즉, 배열을 활용한다. - 인덱스를 찾으면 해당 인덱스에서 링크드 리스트를 활용하여 데이터를 컨트롤 한다.
이 구조를 hash table 이라고 한다. - 이런 해싱 기법은 HashMap 뿐 아니라 Hash가 들어가는 HashSet, Hashtable, HashMap에서 모두 사용된다.
아래는 환자정보관리 시스템으로 예시를 든 내용이다. 자바의 동영상 강의 참고
hash table
- 배열과 링크드 리스트가 조합된 형태
- 배열은 접근성이 좋은 장점, 링크드 리스트의 변경이 용이한 점을 활용했다.
TreeMap
특징
- TreeSet과 같은 원리이다.
- 즉, 데이터 추가 삭제가 느리고, 정렬 및 검색에 좋다.
반응형
'Java' 카테고리의 다른 글
커스텀 예외 클래스는 언제 사용해야 할까? (0) | 2021.12.03 |
---|---|
java로 보는 멀티 쓰레드에서 싱글톤의 위험을 간단히 알기 (0) | 2021.10.22 |
Java로 자료구조 이해하기 4편(Set) (0) | 2021.10.16 |
인터페이스로 객체지향스럽게 다형성을 이용하여 중복 제거 하기 (0) | 2021.10.14 |
JVM 동작 원리 (0) | 2021.10.11 |