2.2. Set

약 5분

본문 듣기
읽기 설정

글자 크기

줄 간격

글꼴

2.2. Set

Java Collection Framework에서 Set은 중복을 허용하지 않는 특성을 가진 컬렉션을 구현하는 인터페이스입니다. 이 자료구조는 데이터를 저장할 때 중복된 요소의 삽입을 막고, 데이터의 유일성을 보장하기 때문에 효율적인 데이터 관리를 가능하게 합니다. 이러한 이유로, Set은 특정 조건을 만족하는 요소들만 필요할 때 유용하게 사용됩니다.

Set의 원리 및 필요성

Set은 유일한 데이터 집합을 필요로 하는 다양한 상황에서 유용합니다. 예를 들어, 사용자가 입력한 이메일 주소 목록에서 중복되는 이메일을 제거해야 할 경우 Set을 사용하면 간단하게 중복을 제거할 수 있습니다. 또한, Set의 요소들은 순서가 보장되지 않지만 빠른 검색 성능을 제공하기 때문에 대량의 데이터를 다룰 때 빠르게 처리할 수 있습니다.

예제: Set 인터페이스 구현하기

Java에서는 Set 인터페이스에 대한 몇 가지 주요 구현체가 있습니다. 가장 많이 사용되는 두 가지는 HashSet과 TreeSet입니다. HashSet은 해시 테이블 기반의 집합으로 빠른 검색이 가능하며, TreeSet은 이진 트리 기반으로 정렬된 순서로 요소를 저장합니다.

다음은 HashSet을 사용하는 간단한 예제입니다:

import java.util.HashSet;
import java.util.Set;

public class SetExample {
    public static void main(String[] args) {
        // HashSet을 생성합니다.
        Set<String> emailSet = new HashSet<>();

        // 이메일 주소를 추가합니다.
        emailSet.add("example1@test.com");
        emailSet.add("example2@test.com");
        emailSet.add("example1@test.com"); // 중복된 값

        // Set의 크기를 출력합니다.
        System.out.println("Set 크기: " + emailSet.size()); // 중복 제거

        // Set의 모든 요소를 출력합니다.
        System.out.println("이메일 목록: " + emailSet);
    }
}

이 코드는 중복된 이메일 주소를 추가하고 HashSet이 어떻게 중복을 제거하는지를 보여줍니다. 실행 결과는 다음과 같습니다:

Set 크기: 2
이메일 목록: [example2@test.com, example1@test.com]

실습

  1. HashSet을 사용하여 숫자 리스트를 관리하고, 중복된 숫자를 입력했을 때의 동작을 확인해보세요.
  2. TreeSet을 사용하여 문자열 데이터를 정렬된 상태로 저장하고 출력해보세요.

프로젝트

학생 관리 프로그램에서 학생의 고유 ID를 저장할 때 Set을 활용하여 중복된 ID를 관리하는 기능을 구현해보세요.

정리

Set은 중복을 허용하지 않는 컬렉션으로, 데이터의 유일성을 보장하는 데 매우 유용합니다. HashSet과 TreeSet의 차이를 이해하고 상황에 맞게 사용하면 효율적인 데이터 처리가 가능합니다.

Set의 활용 방법을 익혔다면 다음 단계로 Collection Framework의 Map 인터페이스에 대해 학습할 차례입니다. Map은 키-값 쌍으로 데이터를 저장하며, 고유한 키를 사용하여 값을 효율적으로 검색할 수 있습니다. 앞으로의 강의에서 Map의 사용법과 관련된 실무 예제를 살펴보겠습니다.

댓글 0

댓글을 남기려면 로그인하세요.

아직 댓글이 없습니다. 첫 댓글을 남겨보세요.