IT Tech/Java

자바(JAVA)의 Map에서 키와 값으로 요소 찾기 - containsKey와 containsValue 활용하기

Developer JS 2024. 1. 9. 11:44
반응형

 

무주 카페

 

자바에서 Map을 통해서 데이터를 넣고 가져와서 활용할 수 있습니다. Array나 List 같은 자료 구조들도 있지만 이들과의 차이점은 Map은 Key와 Value 쌍으로 자료를 구분하고, 저장한다는 것이고, Array와 List는 index를 통해서 자료를 구분, 저장한다는 점입니다.

 

백준 10815번 문제처럼 어떤 값이 존재하는 것인지 존재하지 않는 것인지 찾기 위한 도구로는 Map이 Array나 List보다 더 적당한 도구라고 볼 수 있습니다. 왜냐하면 Array나 List도 값이 존재하는지 찾을 수는 있지만, 결국에는 Index에 의해 구분되기 때문에 순차적으로 검색할 수 밖에 없습니다.

 

결국 어떤 요소의 존재 여부를 찾을 때 해당 자료가 많을 경우, Map으로 자료구조를 선택한다면 조금 더 빠른 검색을 할 수 있는 것이죠. Map에서 해당 키와 값이 존재하는지 확인 할 수 있는 함수인 containsKey와 containsValue에 대해서 알아보겠습니다.

 

1. 키(Key)를 이용해서 확인하는 방법

Map.containsKey(Object key) 메서드를 사용해서 해당 맵에 특정 키가 존재하는지 확인할 수 있습니다. 이 메서드는 키가 맵에 존재하면 'true' 를 반환하고, 그렇지 않다면 'false'값을 반환합니다. 

 

Map<String, Integer> map = new HashMap<>();

map.put("컴퓨터", 1);
map.put("모니터", 2);

if(map.containsKey("컴퓨터")) {
	System.out.println("맵에 '컴퓨터'라는 키가 존재합니다.");
} else {
	System.out.println("맵에 '컴퓨터'라는 키가 존재하지 않습니다.");
}

 

이렇게 하면 맵에 컴퓨터라는 키가 존재하기때문에 map.containsKey("컴퓨터") 메서드에서 true가 반환되고, '맵에 '컴퓨터' 라는 키가 존재합니다.' 라는 문구가 콘솔에 출력되게 됩니다. 정말 쉽게 해당 자료에 키가 존재하는지 확인할 수 있습니다.

 

2. 값(Value)을 사용하여 확인하는 방법

Map.containsValue(Object value) 메서드를 사용하면 해당 맵에 특정 값이 존재하는지 확인할 수 있습니다. 이 메서드도 Map.containsKey 메서드와 동일하게 존재하면 'true'를 반환하고, 존재하지 않으면 'false'를 반환하게 됩니다.

 

if (map.containsValue(1)) {
    System.out.println("맵에 값 '1'이 존재합니다.");
} else {
    System.out.println("맵에 값 '1'이 존재하지 않습니다.");
}

 

 

이 코드도 역시 1이라는 값이 맵에 존재하기 때문에 "맵에 값 '1'이 존재합니다."라는 문구가 콘솔에 출력되게 됩니다. 

 

결론

자바의 'Map'은 키와 값의 쌍으로 데이터를 관리하는 자료 구조입니다. List나 Array같이 index를 통해서 데이터를 정리하고 접근하는 자료구조와는 근본적인 차이를 가지게 되죠. 순차적으로 사용할 땐 List나 Array같은 자료구조를 사용하는 것이 더 효율적이겠지만 순차적이게 접근하지 않아도 된다면 Map의 키를 이용해서 데이터를 정리하는 자료구조가 더 빠르고 효율적으로 사용할 수 있습니다. 

 

이번 포스팅에서는 그런 'Map'의 containsKey와 containsValue 메서드를 통해 해당 자료에 키나 값이 있는지 찾는 방법에 대해서 알아봤씁니다. 

반응형