Set을 왜 사용하는가 ?

고유한 값 저장: Set은 중복된 값을 허용하지 않으므로, 중복된 요소를 제거하거나 중복된 값을 방지하기 위해 사용됩니다. 이는 데이터의 일관성을 유지하고 중복된 데이터를 효과적으로 처리할 때 유용합니다.

검색 및 포함 여부 확인: Set은 내부 구현상 해시 테이블을 사용하므로, 값을 검색하거나 특정 요소가 Set에 포함되는지 빠르게 확인할 수 있습니다. 이는 성능 측면에서 유용합니다.

집합 연산: Set은 집합 연산을 수행하기 위한 다양한 메서드와 연산자를 제공합니다. 예를 들어, 두 개의 Set을 합치거나 교집합을 찾는 등의 작업을 간단하게 수행할 수 있다

순서가 중요하지 않을 때: Set은 요소의 순서를 보장하지 않습니다. 순서가 중요한 경우 배열을 사용하는 것이 더 적절할 수 있습니다. 그러나 요소의 순서가 중요하지 않고 중복을 허용하지 않아야 하는 경우 Set을 사용하는 것이 좋습니다.

해시 가능한 요소: Set은 요소가 해시 가능해야 하므로, Set에 저장될 요소는 해시 가능해야 합니다. 기본 Swift 타입들 (정수, 문자열, 딕셔너리, 배열 등)은 대부분 해시 가능하며, 필요한 경우 사용자 정의 타입도 해시 가능하게 만들 수 있.

Set이란?

고유한 값을 저장하기 위한 컬렉션 타입 중 하나

Set예시

생성 및 초기화

    // 값 추가
    letters.insert("a")
    letters.insert("a")
    letters.insert("b")
    print( letters )

    // 값 삭제
    letters.remove("b")
    print( letters )

    // 값의 포함 여부
    letters.contains("a")
    letters.contains("b")

    // 반복
    letters.insert("b")
    letters.insert("c")
    letters.insert("d")
    for c in letters {
        print(c)
    }


    // 집합 연산 (배열과 차이)
    let odd: Set = [1, 3, 5, 7, 9]
    let even: Set = [0, 2, 4, 6, 8]
    let single: Set = [2, 3, 5, 7]

    print(odd.union(even).sorted())    // 합집합
    print(odd.subtracting(single))     // 차집합, 특정 집합의 공통된 값을 제외한 새로운 집합을 생성
    print(odd.intersection(single))    // 교집합, 공통된 값으로 새로운 집합을 생성
    print(odd.symmetricDifference(single)) // 여집합, 공통된 값을 제외한 새로운 집합을 생성

Set을 어떻게 사용하는가 ?

사용자 정보를 중복없이 관리 및 검색할때 사용

profile
블로그 이전합니다 https://james-kim-tech.tistory.com/

0개의 댓글