20221025

Snack 남관식·2022년 11월 2일

TIL

목록 보기
7/11
post-thumbnail

컬렉션 타입

  1. Array
  • 순서(인덱스)가 있는 멤버를 가진 리스트 형태의 컬렉션 타입
var integersArray: Array<Int> = Array<Int>()

// 여러 형태로 변형 가능
// var integersArray: Array<Int> = [Int]()
// var integersArray: Array<Int> = []
// var integersArray: [Int] = Array<Int>()
// var integersArray: [Int] = [Int]()
// var integersArray: [Int] = []
// var integersArray = [Int]()
// var integersArray = Array<Int>()
  • 메소드 등 여러가지 형태로 Array 활용
var integersArray: Array<Int> = []

// Array에 멤버 추가
integersArray.append(3) // [3]
integersArray.append(10) // [3, 10]

// Array에서의 멤버 확인
integersArray.contains(3) // true
integersArray.contains(5) // false

// Array의 멤버 교체
integersArray[0] = 7 // 0번째 멤버 7로 교체

// Array의 멤버 수 확인
integersArray.count // 2

// Array의 멤버 삭제
integersArray.remove(at: 0) // 0번째 멤버 삭제
integersArray.removeLast() // 마지막 멤버 삭제
integersArray.removeAll() // 모든 멤버 삭제

// 수정 불가 Array(멤버 추가, 삭제 불가)
let immutableArray = [1, 2, 3]
  1. Dictionary
  • 키(key)와 값(value)의 쌍으로 이루어진 컬렉션 타입
var englishDictionary: Dictionary<String, String> = Dictionary<String, String>()

// 여러 형태로 변형 가능
// var englishDictionary: Dictionary<String, String> = Dictionary<String, String>()
// var englishDictionary: Dictionary<String, String> = [:]
// var englishDictionary: [String: String] = Dictionary<String, String>()
// var englishDictionary: [String: String] = [String: String]()
// var englishDictionary: [String: String] = [:]
// var englishDictionary = Dictionary<String, String>()
// var englishDictionary = [String: String]()
  • 메소드 등 여러가지 형태로 Dictionary 활용
var englishDictionary: Dictionary<String, String> = [:]

// 키에 해당하는 값 
englishDictionary["elephant"] = "코끼리"
englishDictionary["lion"] = "사자"

// 키에 해당하는 값 할당
englishDictionary["elephant"] = "코끼리" // ["elephant": "코끼리"]
englishDictionary["lion"] = "사자" // ["lion": "사자", "elephant": "코끼리"]

// 키에 해당하는 값 변경
englishDictionary["lion"] = "호랑이" // ["lion": "호랑이", "elephant": "코끼리"]

// 키에 해당하는 값 제거
englishDictionary.removeValue(forKey: "lion") // ["elephant": "코끼리"]
englishDictionary["elephant"] = nil // [:]

// 수정 불가 Dictionary(값 추가, 변경, 삭제 불가)
let initalizedDictionary: [String: String] = ["A": "a", "B": "b"]

// "A"라는 키에 해당하는 값이 없을 수 있으므로 String 타입의 값이 나올 것이라는 보장이 없음으로 컴파일 오류
let someValue: String = initalizedDictionary["A"]
  1. Set
  • 순서가 없고, 중복된 멤버가 없는 컬렉션 타입
  • 집합과 비슷한 개념
var integersSet: Set<Int> = Set<Int>() // []
integersSet.insert(2) // [2]
integersSet.insert(4) // [2, 4]
integersSet.insert(6) // [2, 4, 6]
integersSet.insert(6) // [2, 4, 6]
// 중복된 데이터는 입력되지 않음

// Set에서의 멤버 확인
integersSet.contains(2) // true
integersSet.contains(3) // false

// Set에서 멤버 삭제
integersSet.remove(4) // [2, 6]
integersSet.removeFirst() // [6]

// Set의 멤버 수 확인
integersSet.count // 1
  • 두 Set간의 집합연산이 가능
let setA: Set<Int> = [1, 2, 3, 4, 5]
let setB: Set<Int> = [2, 4, 6 ,8, 10]

// 합집합
let union: Set<Int> = setA.union(setB) // [2, 5, 6, 4, 10 , 1, 3, 8]

// 합집합 오름차순 정렬(Array)
let sortedUnion: [Int] = union.sorted() // [1, 2, 3, 4, 5, 6, 8, 10]

// 교집합
let intersection: Set<Int> = setA.intersection(setB) // [2, 4]

// 차집합
let subtractiong: Set<Int> = setA.subtracting(setB) // [1, 3, 5]
profile
iOS Developer | Product Designer @snacknam

0개의 댓글