어제 오늘 내일

[Java HashSet] 주요 메소드 정리 및 활용 예제 본문

IT/Java

[Java HashSet] 주요 메소드 정리 및 활용 예제

hi.anna 2025. 10. 8. 01:16

HashSet은 중복 없는 집합 자료구조입니다. 기본적인 추가, 삭제, 검색 외에도 다양한 메소드가 제공됩니다. 이번 글에서는 가장 자주 사용하는 메소드들을 코드와 함께 정리합니다.

 

1. add()

import java.util.HashSet;

public class HashSetAdd {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<>();
        set.add("kim");
        set.add("lee");
        set.add("kim"); // 중복 삽입 시 무시

        System.out.println(set); // [kim, lee]
    }
}

중복된 값은 저장되지 않고 무시됩니다. 반환값은 boolean으로 실제로 추가되었는지 여부를 알려줍니다.

 

2. remove()

import java.util.HashSet;

public class HashSetRemove {
    public static void main(String[] args) {
        HashSet<Integer> set = new HashSet<>();
        set.add(1);
        set.add(2);

        boolean removed = set.remove(1);
        System.out.println(removed); // true
        System.out.println(set);     // [2]
    }
}

존재하는 요소면 삭제 후 true, 없으면 false를 반환합니다.

 

3. contains()

import java.util.HashSet;

public class HashSetContains {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<>();
        set.add("kim");
        set.add("lee");

        System.out.println(set.contains("kim")); // true
        System.out.println(set.contains("park")); // false
    }
}

특정 요소 존재 여부를 확인할 때 사용합니다.

 

4. size(), isEmpty()

import java.util.HashSet;

public class HashSetSizeEmpty {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<>();
        System.out.println(set.isEmpty()); // true

        set.add("kim");
        set.add("lee");

        System.out.println(set.size());    // 2
        System.out.println(set.isEmpty()); // false
    }
}

저장된 요소 개수 확인이나 비어 있는지 체크할 때 활용합니다.

 

5. clear()

import java.util.HashSet;

public class HashSetClear {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<>();
        set.add("kim");
        set.add("lee");

        set.clear();
        System.out.println(set); // []
        System.out.println(set.isEmpty()); // true
    }
}

모든 요소를 한 번에 제거합니다.

 

6. 반복 (for-each, Iterator)

import java.util.*;

public class HashSetIteration {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<>();
        set.add("kim");
        set.add("lee");
        set.add("park");

        // for-each
        for (String name : set) {
            System.out.print(name + " ");
        }
        System.out.println();

        // Iterator
        Iterator<String> it = set.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }
    }
}

순서가 보장되지 않으며, 반복 도중 삭제는 반드시 Iterator.remove()를 사용해야 안전합니다.

 

결론

  • 요소 추가: add
  • 요소 삭제: remove, clear
  • 검색: contains, size, isEmpty
  • 순회: for-each, Iterator
  • 순서를 유지하려면 LinkedHashSet, 정렬이 필요하면 TreeSet을 고려

 

 

반응형
Comments