Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Skipalong's tistory

240326 TIL - Map 본문

TIL

240326 TIL - Map

Skipalong 2024. 3. 27. 02:04

오늘은 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 값을 기준으로 정렬되는 특징을 가짐
  • 정렬된 순서로 키/값 쌍을 저장하므로 빠른 검색(특히 범위 검색)이 가능
  • 단, 키와 값을 저장하는 동시에 정렬을 행하기 때문에 저장시간이 다소 오래 걸림
  • 정렬되는 순서는 숫자 → 알파벳 대문자 → 알파벳 소문자 → 한글 순

참고한 블로그

https://inpa.tistory.com/entry/JCF-%F0%9F%A7%B1-Collections-Framework-%EC%A2%85%EB%A5%98-%EC%B4%9D%EC%A0%95%EB%A6%AC#map_%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4

 

🧱 Java Collections Framework 종류 💯 총정리

Java Collection Framework 자바 새내기분들은 컬렉션 프레임워크라는 단어에 뭔가 거창하고 어려운 느낌이 들수 있겠지만, 그냥 자료 구조(Data Structure) 종류의 형태들을 자바 클래스로 구현한 모음집

inpa.tistory.com

 

이렇게 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