해시맵을 사용하기 적합한 상황

반응형

https://javatutorial.net/java-hashmap-inline-initialization/

 

해시맵은 키-값 쌍을 빠르게 저장하고 조회할 수 있는 자료구조입니다.

 

대부분의 작업에서 평균 시간 복잡도가 O(1)이기 때문에, 특정한 값이나 키를 빠르게 찾을 때 사용하면 좋습니다.

 

1. 빠른 조회가 필요한 경우

특정 값이나 키를 빠르게 조회해야 할 때, 해시맵을 사용하면 유리합니다.

예를 들어, 학생 ID에 대한 학생 정보를 저장하거나, 상품 코드에 따른 상품 이름을 관리할 때 유용합니다.

Map<String, String> studentMap = new HashMap<>();
studentMap.put("S123", "John Doe");
studentMap.put("S124", "Jane Doe");

 

2. 중복 없는 값이나 고유 값을 추적할 때

데이터가 이미 존재하는지 여부를 빠르게 확인하고 싶을 때 해시맵을 사용하면 좋습니다.

예를 들어, 중복된 값을 허용하지 않거나 고유한 값만 유지해야 할 때, 해시맵의 키에 값을 저장하여 빠르게 존재 여부를 확인할 수 있습니다.

 

3. 빈도 수를 계산할 때

해시맵은 각 값의 빈도 수를 추적하는 경우에 매우 적합합니다.

예를 들어, 문자열 내에서 각 문자가 몇 번 등장했는지 확인할 때 유용합니다.

Map<Character, Integer> charCount = new HashMap<>();
for (char c : text.toCharArray()) {
    charCount.put(c, charCount.getOrDefault(c, 0) + 1);
}

 

4. 상대 위치를 쉽게 저장할 때

해시맵을 이용해 배열의 각 요소와 인덱스를 저장해 두면, 나중에 같은 값을 다시 만났을 때 바로 이전 위치를 찾을 수 있습니다.

예를 들어, 두 수의 합 문제에서는 각 숫자의 값과 인덱스를 해시맵에 저장하여, 타겟 값을 만들 수 있는 인덱스를 쉽게 찾을 수 있습니다.

 

5. 연관 관계를 저장할 때

해시맵은 키와 값을 연관시키는 데 적합합니다.

예를 들어, 고객과 주문 목록을 매칭하거나, 지역과 지역 코드를 매칭할 때 유용합니다.

 

6. 정렬이 필요 없을 때

해시맵은 기본적으로 키의 순서를 보장하지 않기 때문에 정렬이 필요 없는 경우에 적합합니다.

순서가 필요한 경우는 `TreeMap`이나 `LinkedHashMap`을 사용해야 합니다.

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유