Algorithm

[JAVA] 알고리즘 풀 때 HashMap 사용법 정리

랩실외톨이 2023. 9. 24. 03:15
반응형

알고리즘 풀 때 HashMap을 사용해야 할 때가 있다.

주로 중복을 제거하거나, key에 따라 value값을 불러와야 할 때 사용한다.

 

자세한 설명은 주석 참조@@

 

//라이브러리
import java.util.Map;
import java.util.Map.Entry;

//key-value 자료형 선언
HashMap<String, Integer> h = new HashMap<>();

//key, value값을 넣는다.
h.put("Hello", 0);
//key, value값을 넣는다. 이때 key값이 없으면 0, 있으면 그 value값의 +1을 하는 코드
h.put(s, h.getOrDefault(s, 0) + 1); 

//key "x"의 value를 반환
int x = h.get("x"); 

//key값만 불러오는 경우
for (String j : h.keySet()) 
	s = j;

//value값만 불러오는 경우
for (Integer j : h.values()) 
	max = Math.max(max, j);

// key와 value를 둘 다 불러와야 하는 경우
for (Entry<String, Integer> entry : h.entrySet()) 
	if (max >= 2 && entry.getValue() == max)
    	list.add(entry.getKey());

 //key값이 포함되어 있는지 판별, true, false 리턴
if (h.containsKey("x"))
    f = true;

//value값이 포함되어 있는지 판별, true, false 리턴
if (h.containsValue(1)) 
    f = true;

 

 

 

 

반응형

 

 

 

 

이외에도 다른 자료구조에 있는 size, isEmpty, putAll, clear, remove 등이 있다.

HashMap의 시간복잡도는 다음과 같다.

 

get           : O(1)
containsKey   : O(1)
next          : O(h/n) h는 테이블 용량

 

key값에 따라 바로 value값을 찾을 수 있는 구조이기 때문에 사용이 까다롭지만 시간복잡도가 아주 작은 편이라서 알고리즘 문제를 풀 때 유용하게 사용할 수 있다!!

 

 

 

 

반응형