어제 오늘 내일

[Java] HashMap에 특정 key 존재 여부 확인하기 본문

IT/Java

[Java] HashMap에 특정 key 존재 여부 확인하기

hi.anna 2021. 5. 18. 06:21
  1. Map.containsKey()
  2. Map.get()

 

1. Map.containsKey()

public boolean containsKey​(Object key)

Map의 containsKey() 메소드는

Map에 파라미터로 입력받은 값과 같은 값이 있으면 true를 리턴합니다.

 

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

public class CheckExistHashMap {
    public static void main(String[] args) {

        // HashMap 준비
        Map<Integer, String> map = new HashMap<Integer, String>();
        map.put(1, "Apple");
        map.put(2, "Banana");
        map.put(3, "Orange");
        map.put(null, "Tomato");

        // 특정 key값 존재여부 체크 (containsKey())
        System.out.println(map.containsKey(1));   // true
        System.out.println(map.containsKey(5));   // false
        System.out.println(map.containsKey(null));   // true
    }
}

containsKey() 메소드를 이용하여

특정 key가 Map에 존재하는지 체크하였습니다.

 

 

 

2. Map.get()

public V get​(Object key)

get() 메소드는,

파라미터로 입력받은 값이 Map에 존재하면, 입력받은 값을 리턴하고,

만약 파라미터로 입력받은 값이 Map에 존재하지 않으면, null을 리턴합니다.

 

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

public class CheckExistHashMap {
    public static void main(String[] args) {

        // HashMap 준비
        Map<Integer, String> map = new HashMap<Integer, String>();
        map.put(1, "Apple");
        map.put(2, "Banana");
        map.put(3, "Orange");
        map.put(4, null);

        // 특정 key값 존재여부 체크 (get())
        System.out.println(map.get(1) != null ? true : false); // true
        System.out.println(map.get(5) != null ? true : false); // false
        System.out.println(map.get(4) != null ? true : false); // false
    }
}

map.get() 메소드를 사용하여, 특정 key가 Map에 존재하는지 체크할 수도 있습니다.

하지만 이 방법은 약간의 제약이 있습니다.

이 메소드는, 특정 key가 Map에 존재할 경우, 해당 key의 value를 리턴하고,

만약, key가 Map에 존재하지 않으면 null을 리턴합니다.

 

위 예제에서

map.get(5)를 하면, 5라는 key는 존재하지 않으므로, null을 리턴할 것입니다.

map.get(4)를 하면, 4라는 key가 존재하고, 그 값이 null 이므로, 위와 마찬가지로 null을 리턴합니다.

이처럼, value에 null값이 허용되면,

실제 key가 존재하는지 여부를 체크할 때 정확한 값이 나오지 않는 제약 사항이 있습니다.

 


 

key  존재 여부를 체크하기 위해,

get()을 사용하는 것은 위와 같이 null인 경우에 다른 결과를 얻게 됩니다.

따라서, 정확하게 key가 Map에 존재하는지 체크하기 위해서는

containsKey() 메소드를 사용하는 것이 좋습니다.

 

특정 value가 Map에 존재하는지 확인하는 방법은 다음 포스팅을 참조하세요.

[Java] HashMap에 특정 value 존재 여부 확인하기

 

 

 

반응형
Comments