티스토리 뷰
Set
Set은 중복되지 않은 고유 값으로 모여있는 정렬되지 않은 컬렉션(Collection) 집합입니다. 또한 Set에 들어가는 값들은 Hashable 프로토콜을 준수해야합니다.
Declaration
선언
@frozen struct Set<Element> where Element : Hashable
Set 컬렉션(Collection)의 타입 선언부는 위와 같습니다. Set은 struct로 되어있어 구조체의 특성을 갖습니다. 또한 앞서 말했듯이, 또한 Set이 갖는 컬렉션 값들 하나하나는 Hashable 프로토콜을 준수해야(where Element : Hashable) Set에 포함될 수 있습니다.
또한, Set은 swift 표준 라이브러리에 속해있습니다.
Overview
개요
Set 컬렉션(Collection)은 배열(Array) 과 달리, 컬렉션 내의 요소 순서를 신경 쓸 필요가 없고, 해당 요소 하나하나가 중복값이 들어가있지 않는 것을 보장하고 싶을때 사용합니다. 즉, 정렬되지 않은 중복되지않은 값들의 컬렉션을 의도할때 Set을 사용할 수 있겠습니다.
let set: Set = ["one", "two", "three", "four", "five", "five"]
print(set) // ["one", "two", "three", "four", "five"]
위의 예시를 보면, Set에 "five" 문자열이 두번 들어가더라도 중복값을 허용하지 않는 Set 컬렉션 내에서는 하나만 존재하게 됩니다. 그러므로, "five"문자열이 두번 들어간 set: Set 컬렉션 내 요소를 출력하면, "five"가 한번만 출력됩니다.
셋의 요소 타입(Element Type)은 어떠한 타입이던 Hashable 프로토콜을 준수한다면 사용할 수가 있습니다. 보통 기본적으로, 문자열(String), 숫자, 부울(Bool)타입, 관련 값이 없는 열거 케이스, 심지어 Set 자기자신까지도 Set의 요소(Element)로서 사용될 수 있습니다.
Allocating Value in Set Collection
Set 값 할당하기
Swift는 새로운 배열로서 새로운 Set을 쉽게 만들 수 있도록 지원합니다.
간단하게 배열값을 Set 타입의 변수, 상수에 할당해주면 됩니다. 그 예시는 아래와 같습니다.
let set: Set = ["one", "two", "three", "four", "five", "five"]
print(set) // ["one", "two", "three", "four", "five"]
if set.contains("three") {
print("Yes, there is a three string ^-^//")
}
// prints "Yes, there is a three string ^-^//"
위의 예시를 보면, Set의 요소를 배열 형태로 할당해주고 있습니다.
Set은 중복값을 허용하지 않으므로, "five" 값은 2번 할당되었지만 실제로는 1개의 값만 들어갑니다. 이러한 중복값을 허용하지 않는 특성은 Dictionary와 유사하다고 볼 수 있습니다.
또한 Set 요소 내에 어떤 특정 요소가 존재하는지 확인하기 위해 Set에서 제공하는 contains 메서드를 활용하고 있습니다.
위의 예시는 "three" 라는 문자열 요소가 Set 타입 변수에 존재하는지를 contains 메서드를 활용해 체크하는 모습입니다. 현재 Set 컬렉션 배열 내에는 "three"가 존재하므로, "Yes, there is a three string ^-^//"가 출력됩니다.
애플 Swift 공식 문서 [Set] 참고 링크 ▼
'iOS 개발 > 개발자문서 정보' 카테고리의 다른 글
swift Set 자료구조, 집합 기본연산 메서드 정리 (0) | 2020.06.17 |
---|---|
swift Set 기본 메서드, 집합 컬렉션 비교 기능 알아보기 (0) | 2020.06.16 |
iOS swift Dictionary, 딕셔너리 값 순회탐색하는 방법 (0) | 2020.06.14 |
iOS swift Dictionary, 딕셔너리 값 읽고 쓰고 제거하는 방법 (0) | 2020.06.12 |
iOS 앱에 Core ML 모델 통합해서 사용하는 방법 (0) | 2020.05.31 |
- Total
- Today
- Yesterday
- 프로토콜
- Protocol
- ios
- 알고리즘문제
- SwiftUI
- uikit
- 프로그래머스
- swift문제
- 자연어처리
- swift언어
- swift string
- publisher
- swift reduce
- swift
- 김프매매
- 프로그래머스swift
- 컬렉션
- 개발자문서
- Collection
- swift알고리즘
- 백준알고리즘
- createML
- 스위프트
- CoreML
- swift 문자열
- Swift 알고리즘
- 백준swift
- swift 기초
- 알고리즘
- 부스트코스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |