🧠 알고리즘/개념

Map이란 무엇인가

SoloQuest 2026. 1. 7. 09:50

Map은 Key–Value(키–값) 형태로 데이터를 저장하는 자료구조다.

Map의 가장 큰 특징은
값을 순서가 아니라 ‘키’를 기준으로 관리한다는 점이다.

  • 하나의 키(key)에 하나의 값(value)이 대응된다
  • 키는 중복될 수 없다
  • 키를 이용해 값을 빠르게 조회하는 것이 목적이다

예를 들면 다음과 같은 구조가 Map에 해당한다.

  • 사용자 ID → 사용자 정보
  • 날짜 → 해당 날짜의 글
  • 상품 코드 → 상품 정보

즉 Map은

어떤 기준(키)을 주면, 그에 대응하는 값이 바로 나오는 구조다.


Map의 기본적인 사용 형태

Map은 보통 다음과 같은 형태로 사용된다.

 
Map<String, Integer> map = new HashMap<>();

여기서 중요한 점은
Map 자체는 구조와 동작 방식에 대한 개념이라는 것이다.

Map은 다음과 같은 동작을 전제로 한다.

  • 키와 값을 저장할 수 있다
  • 키를 이용해 값을 조회할 수 있다
  • 키의 중복은 허용되지 않는다

이 조건만 만족한다면
내부에서 데이터를 어떻게 저장하는지는 중요하지 않다.


Map의 종류

Map은 하나의 고정된 자료구조가 아니라
여러 구현 방식이 존재하는 개념이다.

대표적인 Map 구현 방식들은 다음과 같다.

  • HashMap
  • LinkedHashMap
  • TreeMap

이들은 모두 Map이라는 공통된 구조를 따르지만
데이터를 저장하고 관리하는 방식이 서로 다르다.


HashMap이란 무엇인가

HashMap은
Map을 구현한 가장 대표적인 자료구조다.

HashMap은 내부적으로 해시(Hash) 를 사용한다.

동작 개념은 다음과 같다.

  1. 키를 해시 함수에 넣어 숫자 값으로 변환한다
  2. 이 값을 기준으로 저장 위치를 결정한다
  3. 같은 방식으로 키를 다시 계산해 값을 찾아온다

이 방식 덕분에
HashMap은 평균적으로 매우 빠른 조회 속도(O(1)) 를 가진다.

 
Map<String, Integer> score = new HashMap<>(); score.put("Alice", 90); score.put("Bob", 85); score.get("Alice"); // 90

HashMap의 특징은 다음과 같다.

  • 키 기반 조회가 빠르다
  • 저장 순서는 보장되지 않는다
  • 가장 일반적으로 사용되는 Map 구현체다

다른 Map 구현체들

HashMap 외에도 Map에는 여러 구현 방식이 있다.

LinkedHashMap

  • 입력된 순서를 유지한다
  • 순서가 중요한 경우 사용한다

TreeMap

  • 키를 기준으로 자동 정렬된다
  • 정렬이나 범위 검색이 필요한 경우 사용한다

이처럼
Map이라는 큰 개념 아래에 여러 구현 방식이 존재하며,
HashMap은 그중 가장 기본적이고 범용적인 선택이다.


정리

  • Map은 키를 기준으로 값을 관리하는 자료구조 개념이다
  • Map에는 여러 구현 방식이 있다
  • HashMap은 해시를 이용해 Map을 구현한 대표적인 자료구조
  • 대부분의 경우 HashMap이 기본 선택이 된다