Notice
Recent Posts
Recent Comments
Link
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

선진이네

[JAVA] Map - getOrDefault란, 본문

Language/JAVA

[JAVA] Map - getOrDefault란,

악마선진 2023. 9. 7. 09:30

알고리즘 문제를 푸는 과정에서, 자료구조 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