2017년 10월 22일 일요일

Data Type : 세트(Set) @@ Swift 4.0

세트 (Set)


세트는 같은 타입의 데이터를 순서 없이 하나의 묶음으로 저장하는 형태의 컬렉션 타입입니다.
세트 내의 값은 모두 유일한 값, 즉 중복된 값이 존재하지 않습니다.

*순서가 중요하지 않거나 각 요소가 유일한 값이어야 하는 경우에 사용

1. 세트의 선언과 생성

//  빈 세트의 생성
var emptySet : Set<String> = Set<String>()
var emptySet : Set<String> = []

// 대괄호를 이용해 초기화
var names : Set<String> = ["name1", "name2", "name3","name4"]

*Array에서 사용가능한 축약형(Array<Int>  -> [Int])이 Set에서는 불가능 사용 불가능 
 var names : String = ["name1", "name2", "name3","name4"]
 print(type(of: names))  // Array<String>

위 축약형을 사용할 경우 타입 추론에 의해 컴파일러는 Set 가 아닌 Array로 타입을 지정합니다.

2. 프로퍼티 

isEmpty  //  빈 값 체크 (Bool)
count  // 중복된 값은 허용하지 않아 카운팅 되지 않습니다.

3. 추가 및 삭제
// 추가
names.insert("name5")

// 삭제
names.rem("name5")


4. 세트의 활용 

- 집합 연산-

let englishClassStudent : Set<String> = ["john", "chulsoo", "yagom"]
let koreaClassStudent : Set<String> = ["jenny", "yagom", "chulsoo", "haha", "minsoo"]

<교집합>
let intersectSet : Set<String> = englishClassStudent.intersection(koreaClassStudent)
print(intersectSet)  //  ["yagom", "chulsoo"]

<여집합의 합>
let symmetricDiffSet : Set<String> = englishClassStudent.symmetricDifference(koreaClassStudent)
print(symmetricDiffSet)  //  ["john", "haha", "minsoo", "jenny"]

<합집합>
let unionSet : Set<String> = englishClassStudent.union(koreaClassStudent)
print(unionSet)  //   ["john", "yagom", "chulsoo", "haha", "minsoo", "jenny"]

<차집합>
let subtractSet : Set<String> = englishClassStudent.subtracting(koreaClassStudent)
print(subtractSet)  //  ["john"]


- 포함관계 연산 - 

print(새.isDisjoint(with: 포유류))   //  서로 베타적인지 - true

print(새.isSubset(of: 동물))   //  새가 동물의 부분집합 인가 - true

print(동물.isSuperset(of: 포유류))   //  동물은 포유류의 전체 집합인가 - true

print(동물.isSuperset(of: 새))  //  동물은 생의 전체 집합인가 - true


출처 : 야곰님의 스위프트 프로그래밍

댓글 없음:

댓글 쓰기

추천 게시물

애플 개발자 등록방법 2016년 5월 8일 기준!!

애플 개발자 등록 절차 1. 개발자 등록 페이지 이동    애플 개발자 로그인 > Account 페이지 이동 > 하단 영역 클릭 (이미지 참조)   >> Enroll 클릭 >> 무조건 승인!! ...