선진이네
[JAVA] Map - getOrDefault란, 본문
알고리즘 문제를 푸는 과정에서, 자료구조 Map을 사용할 때 하나의 키에 여러 개의 값을 넣어야 하는 상황이 꼭 생긴다.
getOrDefault(Object key, V DefaultValue)
찾는 key가 존재하면 해당 key에 매핑되어 있는 값을 반환하고, 그렇지 않으면 디폴트 값이 반환된다.
저 메소드를 알기 이전에는 if 문으로 항상 처리해왔다. 다음과 같은 식으로.
int[] arr = {1, 1, 2, 3, 3};
HashMap<Integer, Integer> map = new HashMap<>();
for(int i = 0; i < arr.length; i++){
int tmp = arr[i];
if(map.containsKey(tmp)){
map.put(tmp, map.get(tmp) + 1));
}
else{
map.put(tmp, 1);
}
}
저 메소드를 사용하게 되면 편하게 구현할 수 있다. 다음과 같이.
int[] arr = {1, 1, 2, 3, 3};
HashMap<Integer, Integer> map = new HashMap<>();
for(int i = 0; i < arr.length; i++){
int tmp = arr[i];
map.put(tmp, map.getOrDefault(tmp, 0) + 1);
}
분명히 편해지는 것을 체감할 수 있으니 꼭 기억했으면 한다.
'Language > JAVA' 카테고리의 다른 글
[JAVA] Thread-safe란,, (0) | 2023.10.29 |
---|---|
[JAVA] 예외 처리 못하겠으면, 이대로만 해 (0) | 2023.09.08 |
[JAVA] XML Parsing (0) | 2023.01.30 |
[JAVA] Lamda Expression (0) | 2023.01.28 |
[JAVA] 입출력 정리 (0) | 2023.01.28 |