Set

sungs·2025년 6월 18일

자바

목록 보기
15/95

🔷 Set이란?

  • Set은 자바의 Collection 인터페이스를 상속받는 중복을 허용하지 않는 집합.

  • 순서를 보장하지 않으며, 오직 유일한 값만 저장할 수 있다.

Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
set.add("apple");  // 중복이므로 추가되지 않음
System.out.println(set); // 출력: [apple, banana]

🔹 주요 구현 클래스

구현 클래스특징
HashSet가장 일반적인 Set, 내부적으로 HashMap 기반, 순서 보장 X
LinkedHashSet입력한 순서를 유지, 내부적으로 LinkedList + HashMap
TreeSet자동 정렬 기능 제공 (오름차순 기본), 내부적으로 이진 탐색 트리

✅ 주요 메서드 정리

메서드설명
add(E e)요소 추가
remove(Object o)요소 삭제
contains(Object o)요소 포함 여부 확인
size()요소 개수 반환
clear()모든 요소 제거
isEmpty()비어있는지 여부 확인
iterator()반복자 반환 (for-each 사용 가능)

⚠️ 주의할 점

  • Set은 중복을 허용하지 않기 때문에, 객체를 저장할 때는 equals()와 hashCode()를 반드시 재정의해야 한다.

  • 정렬이 필요한 경우 TreeSet 또는 Comparator를 활용해야 한다.

  • 순서가 중요한 경우 LinkedHashSet을 사용한다.

🧠 언제 Set을 써야 할까?

  • 중복된 값을 저장하면 안 되는 경우

  • 빠른 검색과 삭제가 필요한 경우 (HashSet)

  • 정렬이 필요한 경우 (TreeSet)

  • 입력 순서를 기억해야 할 경우 (LinkedHashSet)

✅ 마무리

Set은 중복 데이터를 막고, 효율적인 데이터 처리를 가능하게 해주는 유용한 자료구조다. 상황에 맞는 구현체(HashSet, TreeSet, LinkedHashSet)를 잘 선택해서 사용하면 성능과 가독성 모두 챙길 수 있다.

profile
앱 개발 공부 중

0개의 댓글