[자료구조]-Map
개념
Collection은 자바에서 데이터의 집합, 그룹을 의미한다.
Map은 Collection을 상속받지 않는데 Collection으로 분류된다.
특징
- Map은 Key와Value를 쌍으로 저장하는 방식의 자료구조이다.
- Key는 중복 불가능, Value는 중복 가능
- 저장 순서가 보장되지 않는다.
대표적인 클래스
- 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특징을 추가한 자료구조이다.
- 각 클래스의 특징을 고려해서 선택하자