본문 바로가기
IT/JAVA

HashMap vs HashSet 차이점

by ohukohoh 2025. 3. 1.
728x90
반응형

Java에서 HashMapHashSet은 모두 해시 기반의 자료구조이지만, 용도와 동작 방식에 차이가 있습니다. HashMap키-값(Key-Value) 쌍을 저장하는 자료구조이고, HashSet중복을 허용하지 않는 데이터 집합을 저장하는 자료구조입니다.


1. HashMap이란?

HashMap 개념

  • 키(Key)와 값(Value)의 쌍으로 데이터 저장
  • 키는 중복 불가능하지만, 값은 중복 가능
  • 빠른 검색 및 조회가 가능 (``)

HashMap 사용 예제

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");
        map.put(1, "Grapes"); // 키 중복 (기존 값 덮어쓰기)

        System.out.println("HashMap 요소: " + map);
    }
}

출력 결과:

HashMap 요소: {1=Grapes, 2=Banana, 3=Cherry}

🔹 키 중복이 허용되지 않으며, 같은 키를 사용하면 기존 값이 덮어쓰기됩니다. 🔹 값은 중복 가능하며, 키를 통해 빠르게 접근할 수 있습니다.


2. HashSet이란?

HashSet 개념

  • 중복을 허용하지 않는 집합(Set) 자료구조
  • 순서 보장 없음
  • 빠른 검색이 가능 (``)

HashSet 사용 예제

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("Apple"); // 중복된 요소 추가

        System.out.println("HashSet 요소: " + set);
    }
}

출력 결과:

HashSet 요소: [Banana, Cherry, Apple]

🔹 중복된 요소 "Apple"이 자동으로 제거됩니다. 🔹 데이터의 저장 순서가 유지되지 않을 수 있습니다.


3. HashMap vs HashSet 비교

비교 항목HashMapHashSet

데이터 저장 방식 키-값(Key-Value) 쌍 저장 중복 없는 요소 저장
중복 허용 여부 키 중복 불가, 값 중복 가능 중복 요소 저장 불가
순서 보장 여부 순서 보장 X 순서 보장 X
검색 성능 O(1) (해시 기반 검색) O(1) (해시 기반 검색)
대표 메서드 put(), get(), containsKey() add(), remove(), contains()

HashMap을 사용할 때

  • 키-값 쌍으로 데이터를 저장해야 할 때
  • 특정 키를 통해 값을 빠르게 검색해야 할 때

HashSet을 사용할 때

  • 중복되지 않는 유일한 데이터 모음을 저장해야 할 때
  • 데이터의 존재 여부를 빠르게 확인해야 할 때

결론

  • HashMap키-값 쌍을 저장하는 자료구조이며, 키를 통해 값을 빠르게 조회할 수 있습니다.
  • HashSet중복 없는 데이터를 저장하는 자료구조로, 데이터의 존재 여부를 확인하는 데 유용합니다.
  • 사용 목적에 따라 적절한 자료구조를 선택하면 효율적인 Java 프로그램을 개발할 수 있습니다. 🚀
728x90
반응형