[java] Map - getOrDefault() 사용법

반응형

Map 에서 key 값으로 value 값을 취득하는 경우 get() 메소드를 사용한다.

이때, Map 에서 key 가 존재하면 해당하는 key 의 value 값을 반환하고,  찾는 key 가 없거나 null 이면 null 을 반환한다.

 

get()

1. 예제코드

import java.util.HashMap;
import java.util.Map;
public class Main{
    public static void main(String[] args) throws Exception {
        Map<String, String> map = new HashMap<>();

        // 추가
        map.put("red", "빨강");
        map.put("blue", "파랑");
        map.put("purple", "보라");

        // 취득
        System.out.println(map.get("red"));
        System.out.println(map.get("blue"));
        // key 값이 존재하지 않는 경우
        System.put.println(map.get("orange"));
    }
}

2. 출력결과

get(key) 에서 key 가 존재하지 않으면, null 을 반환한다.

빨강
파랑
null

 

이때, null 대신 기본 값을 반환하도록 할 수 있는 메소드getOrDefault() 이다.

default V getOrDefault(Object key, V defaultValue) {
    V v;
    return (((v = get(key)) != null) || containsKey(key)) 
        ? v
        : defaultValue;
}

getOrDefault(Object key, V defaultValue)

Object key : 찾는 key 값
V defaultValue : 찾는 key 의 value 값이 없거나 null 일때 반환하는 값

 

 

즉, key 가 존재하면 key 의 value 값을 반환하고 없거나 null 이면 defaultValue를 반환한다.

 

 

■ null 대신 기본 값을 반환하도록 할 수 있는 방법

1. getOrDefault()

null 대신 기본 값을 반환하도록 할 수 있는 방법1 : Map 의 getOrDefault() 메소드

1.1. 예제코드

import java.util.HashMap;
import java.util.Map;
public class Main{
    public static void main(String[] args) throws Exception {
        Map<String, String> map = new HashMap<>();

        // 추가
        map.put("red", "빨강");
        map.put("blue", "파랑");
        map.put("purple", "보라");

        // getOrDefault()
        System.out.println(map.getOrDefault("red", "디폴트값"));
        System.out.println(map.getOrDefault("blue", "디폴트값"));
        System.out.println(map.getOrDefault("orange", "디폴트값"));
    }
}

1.2. 출력결과

빨강
파랑
디폴트값

 

2. Optional.ofNullable(값).orElse("디폴트값")

null 대신 기본 값을 반환하도록 할 수 있는 방법2 Optional.ofNullable().orElse() 도 이용해 볼 수 있다.

2.1. 예제코드

import java.util.HashMap;
import java.util.Map;
public class Main{
    public static void main(String[] args) throws Exception {
        Map<String, String> map = new HashMap<>();

        // 추가
        map.put("red", "빨강");
        map.put("blue", "파랑");
        map.put("purple", "보라");

        // ofNullable()
        System.out.println(Optional.ofNullable(map.get("red")).orElse("디폴트값"));
        System.out.println(Optional.ofNullable(map.get("purple")).orElse("디폴트값"));
        System.out.println(Optional.ofNullable(map.get("yellow")).orElse("디폴트값"));
    }
}

2.2. 출력결과

빨강
보라
디폴트값

 

 

 

반응형