Set 인터페이스의 주요 특징은 무엇인가요?
Set 인터페이스는 자바(Java) 컬렉션 프레임워크에서 제공하는 주요 인터페이스 중 하나로, 중복된 요소를 허용하지 않고, 요소들의 집합을 표현하는 데 사용됩니다.
Set의 주요 특징은 다음과 같습니다.
1. 중복 요소 허용 금지 Set에 저장되는 요소들은 중복을 허용하지 않습니다.
즉, 같은 값을 가진 두 개 이상의 요소를 저장할 수 없습니다.
만약 이미 Set에 존재하는 요소를 추가하려고 하면, 추가되지 않고 기존 요소가 유지됩니다.
2. 순서 미보장 일반적으로 Set은 저장된 요소들의 순서를 보장하지 않습니다.
따라서 요소를 삽입한 순서와 조회하는 순서가 다를 수 있습니다.
다만, LinkedHashSet과 같이 순서를 유지하는 Set 구현체도 있습니다.
3. 객체의 동등성 판단 Set은 요소의 중복 여부를 판단할 때 요소의 equals()와 hashCode() 메서드를 사용합니다.
따라서 올바른 중복 판단을 위해 저장할 객체는 equals()와 hashCode()를 적절히 오버라이드해야 합니다.
4. 집합 연산 지원 Set은 수학적 집합과 유사하게 합집합, 교집합, 차집합 등의 연산을 쉽게 구현할 수 있습니다.
예를 들어 retainAll(), addAll(), removeAll() 메서드가 이를 지원합니다.
5. 구현체 다양성 자바에서는 HashSet, TreeSet, LinkedHashSet 등 다양한 Set 구현체를 제공합니다.
- HashSet: 해시 테이블 기반으로 가장 일반적으로 사용되며, 빠른 검색 속도를 가집니다.
- TreeSet: 요소를 정렬된 상태로 저장하며, NavigableSet 인터페이스도 구현합니다.
- LinkedHashSet: 요소를 삽입 순서대로 유지하면서 중복 없이 저장합니다.
Set 인터페이스는 중복되지 않는 요소들의 집합을 나타내며, 요소의 동등성 판단과 순서 유지 여부 등이 구현체에 따라 달라집니다.
데이터의 중복을 제거하거나 집합 연산이 필요한 상황에서 매우 유용하게 사용됩니다.