Skipalong's tistory
240326 TIL - Map 본문
오늘은 Map에 대해 정리해보았다. Map은 알고리즘에서도 많이 쓰이고 프로젝트를 할 때도 사용하는 경우가 있었기 때문에 잘 정리해두어야할 것 같다.
Map이란?
- Key와 value의 쌍으로 연관지어 이루어진 데이터의 집합
- value는 중복되서 저장될수 있지만, key는 해당 Map에서 고유해야만 함
- 만일 기존에 저장된 데이터와 중복된 키와 값을 저장하면 기존의 값은 없어지고 마지막에 저장된 값이 남게 됨
- 저장 순서가 유지 되지 않음
기본 메서드
- key와 value를 반환하는 타입이 다른 이유
- key는 중복을 허용하지 않기 때문에 Set으로 반환하고 value는 중복을 허용하기 떄문에 Collection형태로 반환한다고 함
Map의 종류
1. HashMap
- 배열과 연결이 결합된 Hashing형태로, 키(key)와 값(value)을 묶어 하나의 데이터로 저장
- 중복을 허용하지 않고 순서를 보장하지 않음
- 키와 값으로 null이 허용
- 추가, 삭제, 검색, 접근성이 모두 뛰어남
2. LinkedHashMap
- HashMap을 상속하기 때문에 흡사하지만, Entry들이 연결 리스트를 구성하여 데이터의 순서를 보장
- 일반적으로 Map 자료구조는 순서를 가지지 않지만, LinkedHashMap은 들어온 순서대로 순서를 가짐
3. TreeMap
- 이진 검색 트리의 형태로 키와 값의 쌍으로 이루어진 데이터를 저장
- TreeMap은 SortedMap 인터페이스를 구현하고 있어 Key 값을 기준으로 정렬되는 특징을 가짐
- 정렬된 순서로 키/값 쌍을 저장하므로 빠른 검색(특히 범위 검색)이 가능
- 단, 키와 값을 저장하는 동시에 정렬을 행하기 때문에 저장시간이 다소 오래 걸림
- 정렬되는 순서는 숫자 → 알파벳 대문자 → 알파벳 소문자 → 한글 순
참고한 블로그
이렇게 Map에 대해 정리를 해보았는데 그동안 구조나 특징에 대한 부분은 잘 모르고 그냥 HashMap을 사용하였는데 다른 인터페이스에 대해서도 특징을 잘 기억해두었다가 필요한 경우에 적절히 사용할 수 있도록 해야겠다.
'TIL' 카테고리의 다른 글
240328 TIL - DeadLock(교착상태) (0) | 2024.03.29 |
---|---|
240327 TIL - 에라토스테네스의 체 (1) | 2024.03.28 |
240325 TIL - 그래프 (2) | 2024.03.26 |
240322 TIL - 취업준비 (0) | 2024.03.23 |
240321 TIL - 취업준비 (0) | 2024.03.22 |