Java에서는 다양한 자료구조를 제공하여 개발자들이 효율적으로 데이터를 관리할 수 있도록 도와줍니다. 이 중에서도 Set은 매우 유용한 자료구조 중 하나입니다. Set은 중복을 허용하지 않고, 원소의 순서를 보장하지 않는 특징을 갖고 있습니다. 이번 글에서는 Java의 Set 자료구조에 대해 자세히 알아보고, 실제 예시를 통해 사용 방법을 설명하겠습니다.
Set은 컬렉션 프레임워크의 일부로, java.util
패키지에 포함되어 있습니다. Set은 중복된 값을 저장하지 않는 특징을 가지며, 순서가 없는 컬렉션입니다. 이는 많은 상황에서 중요한 요구사항이 될 수 있습니다. 예를 들어, 학생들의 집합을 저장할 때, 각 학생은 유일한 ID를 가지고 있어야 하며, 순서는 중요하지 않을 수 있습니다.
Java에서는 다양한 Set 인터페이스를 구현한 클래스를 제공합니다. 가장 일반적으로 사용되는 Set 구현 클래스는 다음과 같습니다.
아래 예시를 통해 Set 자료구조의 사용법을 자세히 살펴보겠습니다.
import java.util.HashSet;
import java.util.Set;
public class SetExample {
public static void main(String[] args) {
// HashSet 인스턴스 생성
Set<String> names = new HashSet<>();
// Set에 원소 추가
names.add("Alice");
names.add("Bob");
names.add("Charlie");
// 중복된 원소는 추가되지 않음
names.add("Alice");
// Set 크기 확인
System.out.println("Set의 크기: " + names.size()); // 출력: Set의 크기: 3
// Set 순회 및 출력
for (String name : names) {
System.out.println(name);
}
}
}
위의 예시에서는 HashSet 클래스를 사용하여 Set을 생성하고, add() 메서드를 사용하여 원소를 추가합니다. 중복된 값인 "Alice"는 추가되지 않습니다. 그리고 size() 메서드를 사용하여 Set의 크기를 확인하고, for-each 루프를 사용하여 Set을 순회하며 출력합니다.
실행 결과는 다음과 같습니다:
Set의 크기: 3
Alice
Bob
Charlie
Java의 Set 자료구조는 중복을 허용하지 않고, 원소의 순서를 보장하지 않는 특징을 갖고 있어 다양한 상황에서 유용하게 사용됩니다. Set 인터페이스를 구현한 HashSet, TreeSet, LinkedHashSet 등의 클래스를 활용하여 데이터를 효율적으로 관리할 수 있습니다. 이를 활용하여 중복을 제거하거나 원소의 유일성을 확인하는 등 다양한 작업을 수행할 수 있습니다.