Sky Archive

Java

[JAVA] Map - getOrDefault

서울시장 2022. 2. 6. 15:37

데이터를 주고 받다보면 DB 쿼리문에서 nvl체크 하는거처럼 java 소스에서도 값이 없을 경우에 디폴트 값을 설정하고 싶은 적이 있을 것이다.

 

데이터를 주고받을때 VO로 주고 받겠지만 Map으로 주고 받게 될 경우 대체로 공통메소드에 String타입 nvl체크하는 메소드를 사용할 것이다. 이럴 경우 map.get(key) 값에 nvl체크 할 필요없이 map.getOrDefault(key, "")으로 간편하게 바로 사용할 수 있다.

 

Map - getOrDefault(key, default value)

key에 해당하는 값이 있다면 찾는 키의 값을 반환하고 없다면 디폴트로 설정한 값으로 반환한다.

 

getOrDefault에 대한 자료들을 찾아보니 대부분의 블로그들에서 알고리즘 문제로 활용하는 것으로 더 유명한 메소드 같다. 아래 소스와 같이 알고리즘 문제를 푸는 것으로 유명하니 이런 방법도 있는지 알아두는 것도 좋을 것이다.

 

import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        String[] arr = {"A", "B", "C", "A"};
        Map<String, Integer> map = new HashMap<>();
        for(String str : arr) map.put(str, map.getOrDefault(str, 0) + 1);
    }
}

 

map : {A = 2, B = 1, C = 1}