Post

HashSet vs HashMap

✅ HashSet vs HashMap

Java에서 HashSetHashMap은 모두 Hash Table 기반의 자료구조입니다. 둘 다 빠른 삽입/탐색/삭제가 가능하지만, 저장 방식과 사용 목적은 다릅니다.


✅ HashSet

HashSet중복을 허용하지 않는 집합(Set) 구조입니다.
내부적으로는 HashMap을 사용하여 원소들을 저장합니다. 순서는 보장되지 않으며, 값만 저장됩니다.

📌 주요 메서드

메서드시간 복잡도설명
add(e)O(1)원소 추가
contains(e)O(1)포함 여부 조회
remove(e)O(1)원소 삭제
Iterator 순회O(N)순회 (순서는 무작위)

📍 언제 써야 하는지 (O(1))

  • 중복 제거가 필요할 때
  • 빠른 포함 여부 확인이 필요할 때

📍 언제 쓰지 말아야 하는지

  • 원소의 순서가 중요할 때 (→ LinkedHashSet 또는 TreeSet)
  • 빈번한 정렬 또는 범위 탐색이 필요할 때

💡 예시 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.HashSet;
import java.util.Set;

public class HashSetExample {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();

        set.add("apple");
        set.add("banana");
        set.add("apple");  // 중복 무시

        System.out.println(set.contains("banana")); // true

        set.remove("banana");

        System.out.println(set); // [apple]
    }
}




✅ HashMap

HashMap키(key)-값(value) 쌍을 저장하는 자료구조입니다.
키는 중복이 불가능하며, 값은 중복이 가능합니다. 내부적으로 HashTable을 사용하여 효율적인 키-값 매핑을 제공합니다.

📌 주요 메서드

메서드시간 복잡도설명
put(k, v)O(1)키-값 추가 또는 수정
get(k)O(1)키로 값 조회
containsKey(k)O(1)키 존재 여부 확인
remove(k)O(1)키로 삭제
keySet()/entrySet()O(N)전체 순회

📍 언제 써야 하는지 (O(1))

  • 키-값 매핑이 필요할 때
  • 빠른 조회, 수정, 삭제가 필요할 때

📍 언제 쓰지 말아야 하는지

  • 삽입 순서 또는 정렬된 키 순서가 중요할 때 (→ LinkedHashMap 또는 TreeMap)
  • 값 기준 정렬/탐색이 필요할 때

💡 예시 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.HashMap;
import java.util.Map;

public class HashMapExample {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();

        map.put("apple", 3);
        map.put("banana", 2);
        map.put("apple", 5); // 기존 값 수정

        System.out.println(map.get("apple"));          // 5
        System.out.println(map.containsKey("banana")); // true

        map.remove("banana");

        for (String key : map.keySet()) {
            System.out.println(key + " => " + map.get(key));
        }
    }
}
This post is licensed under CC BY 4.0 by the author.
3D GIF

Trending Tags

도움이 필요하면
나를 눌러 구리🐻
챗봇
너굴
bot
어서와 구리 ʕ ·ᴥ·ʔ
무엇이 필요하셔 구리?

Trending Tags

도움이 필요하면
나를 눌러 구리🐻
챗봇
너굴
bot
어서와 구리 ʕ ·ᴥ·ʔ
무엇이 필요하셔 구리?