[Swift] 컬렉션 타입

짱J·2022년 8월 24일
0

Swift

목록 보기
3/3
post-thumbnail

컬렉션 타입

컬렉션 타입이란, 데이터들의 집합를 뜻한다.
Swift에는 대표적으로 Array, Dictionary, Set이 있다.

  • Array - 순서가 있는 리스트 컬렉션
  • Dictionary - 키와 값의 쌍으로 이루어진 컬렉션
  • Set - 순서가 없고, 멤버가 유일한 컬렉션

Array

// 빈 Array 생성
var integers: Array<Int> = Array<Int>()

// Array 생성 시, 축약하여 표현 가능
var doubles: Array<Double> = [Double]()
var strings: [String] = [String]()
var characters: [Character] = []

// 미리 원소를 넣어 Array 생성 가능
var someIntegers = [1, 2, 3]

// 뒤에 원소 추가
integers.append(1)
integers.append(100)

// 원소를 가지고 있는지 확인
integers.contains(100) // true
integers.contains(99) // false

// 원소 제거
integers.remove(at: 0) // 0번째 인덱스의 원소 제거
integers.removeLast() // 마지막 원소 제거
integers.removeAll() // 모든 원소 제거

// 원소 개수 세기
integers.count

// let을 사용하여 불변 Array 만들기 가능
let immutableArray = [1, 2, 3]

Dictionary

  • 순서 없이 Key, Value 쌍으로 이루어진 데이터 타입
// Key가 String 타입이고 Value가 Any인 빈 Dictionary 생성
var anyDictionary: Dictionary<String, Any> = [String: Any]()
anyDictionary["someKey"] = "value"
anyDictionary["nextKey"] = 100

anyDictionary
// 결과: ["someKey": "value", "nextKey": 100]

// 값 변경
anyDictionary["someKey"] = "dictionary"
// 결과: ["someKey": "dictionary", "nextKey": 100]

// 값 제거
anyDictionary.removeValue(forKey: "nextKey")
anyDictionary["someKey"] = nil

// 빈 Dictionary 생성
let emptyDictionary: [String: String] = [:]

// 미리 원소를 넣은 Dictionary 생성
let initalizedDictionary: [String: String] = ["name": "yeon", "gender": "female"]

// 오류 발생 - name에 해당하는 값이 없을 수도 있기 때문
let someValue: String = intializedDictionary["name"]

Set

  • 중복된 값이 없음을 보장
// 축약형 표현 없음
var integerSet: Set<Int> = Set<Int>()

// 값 추가
integerSet.insert(1)
integerSet.insert(100)
integerSet.insert(10)
integerSet.insert(10)
integerSet.insert(10)

integerSet // 결과: {1, 10, 100}

// 값이 있는지 확인
integerSet.contains(1) // true
integerSet.contains(2) // false

// 값 제거
integerSet.remove(100)
integerSet.removeFirst()

// 원소 개수 세기
integerSet.count

// 응용
let setA: Set<Int> = [1, 2, 3, 4, 5]
let setB: Set<Int> = [3, 4, 5, 6, 7]

// 합집합
let union: Set<Int> = setA.union(setB)
// {2, 4, 5, 6, 7, 3, 1}
// 정렬되지 않은 형태

// 정렬
let sortedUnion: [Int] = union.sorted()
// [1, 2, 3, 4, 5, 6, 7]
// Set은 {}, Array는 []

// 교집합
let intersection: Set<Int> = setA.intersection(setB)
// {5, 3, 4}

// 차집합
let subtracting: Set<Int> = setA.subtracting(setB)
// {2, 1}

🔮 Reference

  • 유튜브 yagom님의 Swift 강좌
profile
[~2023.04] 블로그 이전했습니다 ㅎㅎ https://leeeeeyeon-dev.tistory.com/

0개의 댓글