배경 지식
· Set,Map
Set | Map | |
자료 형태 | Value 만 존재 | Key, Value 쌍으로 존재 |
중복 여부 | X | Key값 중복 X |
contains | contains(value) | containsKey(key) |
get | X | get(key) |
· Hash,Tree
Hash | Tree | |
순서 | X | 정렬 순서 유지 |
시간 복잡도 | O(1) | O(log n) |
- HashSet : 속도 빠름 / Value만 존재 / 존재 여부만 판별 가능
- HashMap : 속도 빠름 / Key·Value 존재 / get 가능
- TreeSet : 정렬 순서 유지 / Value만 존재 / 존재 여부만 판별 가능
- TreeMap : 정렬 순서 유지 / Key·Value 존재 / get 가능
HashMap
- HashMap에서 자료를 관리하는 방식은 해시 방식으로 key 값이 정해지면 그에 대응하는 해시 테이블의 저장 위치가 정해지며, 이런 위치를 계산하는 함수가 해시 함수이다.
- 해시 테이블 : 해시 방식의 자료를 저장하는 공간
- 해시 함수 : e.g) index = hash(key)
- Map 인터페이스에서의 전체 자료 순회
- Map 인터페이스는 모든 자료를 한 번에 순회할 수 있는 방법이 없다.
- 그래서 key 값을 먼저 가져와서 해당 key 값에 해당하는 value를 찾아야 한다.
주요 메서드
- Map.getOrDefault
- V getOrDefault(Object Key, Object defaultValue)
- defaultValue : 지정된 키로 매핑된 값이 없거나 null이면 반환하는 기본 값
- 찾는 key가 존재한다면 찾는 key의 value를 반환하고 없거나 null이면 default 값을 반환한다.
- V getOrDefault(Object Key, Object defaultValue)
구현 코드
import java.util.HashMap;
public class practice {
public static void main(String arg[]) {
String [] abc = { "A", "B", "C" ,"C"};
HashMap<String, Integer> hm = new HashMap<>();
for(String key : abc) {
hm.put(key, hm.getOrDefault(key, 0) + 1);
}
System.out.println("출력 결과 : " + hm);
// 출력 결과 : {A=1, B=1, C=2}
}
}
활용
- 문제 풀이 연결
TreeSet
'CS > Data Structure' 카테고리의 다른 글
Graph(그래프) (0) | 2022.06.14 |
---|---|
LRU Cache (0) | 2022.06.08 |
Queue(작성중) (0) | 2022.06.01 |