231130 TIL_ 세트(Set)

ykyo·2023년 11월 30일
0

Set 세트

  • set 는 집합
  • 순서를 정의하지 않고 동일한 타입의 값을 저장
  • 항목의 순서가 중요하지 않거나 항목이 한 번만 표시되도록 해야 하는 경우 배열대신 집합을 사용
  • 세트 안에 있는 모든 값은 고유(unique)해야하므로 중복 허용 x

자주사용하는 메서드

var letters = Set<String>()
//값 넣기
letters.insert("Classical Music")

//초기화
letters = []

var favoriteGenres: Set<String> = ["Rock", "Classical", "Hip hop"]

favoriteGenres.isEmpty // false
favoriteGenres.count   // 3
favoriteGenres.contains("Rock") // true
favoriteGenres.randomElement()  // random element 출력 ex)"Hip hop"

//업데이트 - 삽입, 교체, 추가
//배열에서 사용하는 append가 없음
var set1: Set<Int> = [1,1,2,2,3,3]
set1.update(with: 1) // 1 -> 기존에 있던 요소이므로 값을 옵셔널 타입으로 리턴
set1.update(with: 7) // nil -> 기존에 없던 요소이므로 Set에 요소가 추가되고 nil 리턴

set1.remove(1) // 1 -> 삭제된 요소를 리턴
set1 // [2,3,7]

set1.remove(5) // nil -> 존재하지 않는 요소를 삭제했을 때는 에러는 발생하지 않고 nil 리턴

// 전체요소 삭제
set1.removeAll()
set1.removeAll(keepingCapacity: true) // 요소는 제거하지만 메모리는 제거하지 않는다

---------------------------------------------------------------------------------
//많이는 안쓰이는 함수들
let oddDigits: Set = [1, 3, 5, 7, 9]
let evenDigits: Set = [0, 2, 4, 6, 8]
let singleDigitPrimeNumbers: Set = [2, 3, 5, 7]

// 합집합
oddDigits.union(evenDigits).sorted()
//[0,1,2,3,4,5,6,7,8,9]

// 교집합
oddDigits.intersection(evenDigits).sorted()
//[]

//차집합
oddDigits.subtracting(singleDigitPrimeNumbers).sorted()
//[1, 9]

//대칭 차집합
oddDigits.symmetricDifference(singileDIgitPrimeNumbers).sorted()
//[1, 2, 9]
profile
for ios, swift, etc.

0개의 댓글