HashMap vs HashSet 차이점과 활용 방법

TaeWoo·2025년 2월 25일
0

학습

목록 보기
1/1
post-thumbnail

해쉬맵(HashMap)과 해쉬셋(HashSet)은 모두 해쉬 테이블(Hash Table) 을 기반으로 하는 자료구조이지만, 그 목적과 동작 방식에 차이가 있습니다.
HashMap과 HashSet의 차이점을 이해하고, 각각의 특징과 활용 방법을 살펴보겠습니다.

1.HashMap
HashMap은 key-value 쌍으로 저장하고, 키를 통해 값을 빠르게 조회할 수 있도록 하는 자료구조입니다.

1) 특징

· Key-Value 저장: 각 키는 유일해야 하며, 하나의 키에 하나의 값이 매핑됩니다.

· 삽입 순서 보장 X: 요소가 추가된 순서를 보장하지 않습니다.

· 중복 값 허용: 같은 값이 여러 키에 매핑될 수 있습니다.

· 빠른 조회 성능: 키를 통해 O(1)의 시간 복잡도로 값을 조회할 수 있습니다.

예시)

import java.util.HashMap;

public class HashMapExample {
    public static void main(String[] args) {
        HashMap<Integer, String> map = new HashMap<>();
        map.put(1, "Apple");
        map.put(2, "Banana");
        map.put(3, "Cherry");
        
        String value = map.get(2); // "Banana" 반환
        System.out.println("Key 2의 값: " + value);
    }
}

2.HashSet
HashSet은 유일한 요소들의 집합을 저장하는 자료구조로, 중복된 값을 허용하지 않습니다.

1) 특징
· 유일한 값 저장: 중복된 요소를 허용하지 않습니다.

· 삽입 순서 보장 X: 요소가 추가된 순서를 보장하지 않습니다.

· 빠른 검색 성능: 특정 값의 존재 여부를 O(1)의 시간 복잡도로 확인할 수 있습니다.

· 키 없이 값만 저장: HashMap과 달리 키가 없고, 값만 저장됩니다

예시)

import java.util.HashSet;

public class HashSetExample {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<>();
        set.add("Apple");
        set.add("Banana");
        set.add("Cherry");
        set.add("Banana"); // 중복된 값이므로 저장되지 않음
        
        boolean exists = set.contains("Banana"); // true 반환
        System.out.println("Banana가 존재하는가? " + exists);
    }
}
  1. 언제 HashMap과 HashSet을 사용할까?

1) HashMap을 사용해야 하는 경우
· 키를 통해 값을 빠르게 조회하고 싶을 때

· 데이터를 매핑하여 저장해야 할 때

· 키를 기반으로 한 연산(검색, 업데이트 등)이 필요할 때

2) HashSet을 사용해야 하는 경우
· 중복을 방지해야 하는 경우

· 특정 요소의 존재 여부를 빠르게 확인하고 싶을 때

· 유일한 값의 집합을 유지하고 싶을 때

profile
코드와 아이디어의 소통, 기록하는 개발자. 🚀✨

0개의 댓글