[자료구조]-Map

개념

Collection은 자바에서 데이터의 집합, 그룹을 의미한다.
Map은 Collection을 상속받지 않는데 Collection으로 분류된다.

특징

  1. Map은 Key와Value를 쌍으로 저장하는 방식의 자료구조이다.
  2. Key는 중복 불가능, Value는 중복 가능
  3. 저장 순서가 보장되지 않는다.

대표적인 클래스

  • HashMap
  • TreeMap
  • LinkedHashMap

1. HashMap

  • Map Collection Class에서 가장 많이 사용되는 클래스 중 하나이다.
  • 해시 알고리즘(Hash algorithm)을 사용해서 검색 속도가 빠르다.

HashMap & HashTable 비교

HashMap은 Key나 Value에 null저장 가능

HashTable은 null저장 불가능

HashTable에는 멀티스레드에 좋다.

2. TreeMap

  • Key 기준으로 데이터 정렬 한다.

(정렬 기준 숫자 > 알파벳 대문자 > 알파벳 소문자 > 한글)

3. LinkedHashMap

  • HashMap은 저장 순서가 보장되지 않는데 LinkedHashMap은 데이터를 저장한 순서대로 저장된다.

Map API

Map<T,T> map = new HashMap<T,T>(); // 객체 선언
map.put(K key, V value); // 데이터 추가
map.get(K key); // 해당 키에 해당하는 데이터 반환
map.remove(K key); // 해당 키에 해당하는 데이터 삭제
map.isEmpty(); // 맵이 비었는지 확인
map.size(); // 맵 크기 반환
map.clear(); // 맵 안의 데이터 제거
map.containsKey(K key); // 해당 키가 있는지 확인
map.containsValue(K key); // 해당 값이 있는지 확인
map.replace(K key, V value); // 해당 키의 값을 바꿈

요약

  • Map은 Set에서 Key와Value특징을 추가한 자료구조이다.
  • 각 클래스의 특징을 고려해서 선택하자