Table of Contents
Java map null체크 방법
Java에서 Map은 Key와 Value의 쌍으로 데이터를 저장하고 관리하는 매우 유용한 자료구조입니다. 그러나 이러한 Map을 사용할 때, 값이 null인지 아닌지 확인하는 것은 필수적입니다. 이 문제를 해결하기 위한 Java map null 체크 4가지 방법에 대해 알아보겠습니다.
1. Map.get() 메소드 사용
가장 기본적인 방법은 Map.get(key)
메소드를 사용하여 key에 해당하는 value를 얻은 뒤, 그 value가 null인지 확인하는 것입니다. 이 방법은 간단하지만, 키가 Map에 존재하지 않을 경우에도 null을 반환하므로, 값이 null인지, 키가 없는지 구분하기 어려울 수 있습니다.
Map<String, String> map = new HashMap<>();
map.put("key1", null);
if(map.get("key1") == null) {
System.out.println("The value is null.");
}
2. Map.containsKey() 메소드 사용
Map.containsKey(key)
메소드를 사용하면 키가 Map에 존재하는지 확인할 수 있습니다. 이 방법을 사용하면, 키가 존재하지 않는 경우와 값이 null인 경우를 구분할 수 있습니다.
Map<String, String> map = new HashMap<>();
map.put("key1", null);
if(map.containsKey("key1") && map.get("key1") == null) {
System.out.println("The value is null.");
}
3. Map.getOrDefault() 메소드 사용
Java 8에서 도입된 Map.getOrDefault(key, defaultValue) 메소드를 사용하면, 키가 Map에 존재하지 않을 때 기본값을 반환할 수 있습니다. 이 방법은 기본값을 설정할 수 있어서 편리하지만, 값이 null인지, 기본값이 반환된 것인지 확인할 수 없습니다.
Map<String, Object> map = ...; // Map 변수 선언
Object value = map.get("key");
if (value != null) {
// value가 null이 아닌 경우 처리 로직
} else {
// value가 null인 경우 처리 로직
}
4. Optional과 Map.get() 조합 사용
Java 8의 Optional을 사용하면 NullPointerException을 피할 수 있습니다. Optional.ofNullable(map.get(key))를 사용하면, 키가 없거나 값이 null인 경우에도 안전하게 처리할 수 있습니다.
Map<String, String> map = new HashMap<>();
map.put("key1", null);
Optional<String> value = Optional.ofNullable(map.get("key1"));
if(!value.isPresent()) {
System.out.println("The value is null or key does not exist.");
}