본문 바로가기

앱 개발/IOS

[IOS 프로그래밍을 위한 스위프트 기초] 1단원 06. 컬렉션 타입(Array, Dictionary, Set)

06. 컬렉션 타입(Array, Dictionary, Set)

Intro

Array: 순서가 있는 리스트 컬렉션

Dictionary: 키와 값의 쌍으로 이루어진 컬렉션(Hashmap과 비슷하다고 생각하면 쉽다)

Set: 순서가 없고, 멤버가 유일한 컬렉션

 

Array

빈 Int Array 생성

var integers: Array<Int> = Array<Int> ()

 

멤버 추가

1이라는 멤버 추가

integers.append(1)

100이라는 멤버 추가

integers.append(100)

당연하게도, 정수형으로 선언했기 때문에 실수가 들어갈 수 없다.

integers.append(101.1) // 오류 발생

 

멤버 존재 확인

integers.contains(100)

 

값 제거하기

특정 인덱스의 값을 제거할 때

integers.remove(at: 0)

마지막 값을 제거할 때

integers.removeLast()

모든 값을 제거할 때

integers.removeAll()

 

배열 안의 갯수를 확인할 때

integers.count

 

Array를 표현하는 다른 방법들

Array<Double>과 [Double]은 동일한 표현이다.

var doubles: Array<Double> = [Double]()

빈 String Array 생성

var strings: [String] = [String]()

빈 character Array 생성

var characters: [Character] = []

let을 사용하여 Array를 선언하면 불변 Array가 된다.

let immutableArray = [1, 2, 3]

 

Dictionary

Key가 String 타입이고 Value가 Any인 빈 Dictionary 생성

var anyDictionary: Dictionary<String, Any> = [String: Any]()

예시

anyDictionary["someKey"] = "value"
anyDictionary["anotherKey"] = 100

Dictionary 출력하기

anyDictionary

 Key에 해당하는 값 바꾸기

anyDictionary["someKey"] = "dictionary"

Dictionary에서 키에 해당하는 값 지우기

anyDictionary.removeValue(forKey: "anotherKey")
anyDictionary["someKey"] = nil

Array와 같이 불변 Dictionary를 선언할 수 있다.

let emptyDictionary: [String: String] = [:]
let initalizedDictionary: [String: String] = ["name": "fuyukawa", "gender": "male"]

값을 넣어주고자 할 때

let someValue: String = initalizedDictionary["name"]

으로 하면 될 것 같지만 에러가 발생한다. 그 이유는 실제 Dictionary의 name이라는 key에 해당하는 값이 없을 수도 있기 때문이다.

 

Set

Set는 축약 문법이 없다.

var integerSet: Set<Int> = Set<Int> ()

값을 insert 메소드를 통해 넣어줄 수 있다.

integerSet.insert(1)
integerSet.insert(100)
integerSet.insert(99)
integerSet.insert(99)
integerSet.insert(99)

Set는 중복된 값이 없음을 보장하기 때문에 여러번 같은 값을 넣어도 무효하다.

Set에 값이 있는지 확인하기 위해 contains 메소드를 사용한다.

integerSet.contains(1)
integerSet.contains(2)

값을 제거할 때는 remove 메소드를 사용한다.

integerSet.remove(100)
integerSet.removeFirst()

Set안에 요소 개수를 파악할 때는 count 메소드를 사용한다.

integerSet.count

Set는 또한 집합 연산을 할 때 유용하게 쓸 수 있다.

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)
let sortedUnion: [Int] = unioin.serted()
let intersection: Set<Int> = setA.intersection(setB)
let subtracting: Set<Int> = setA.subtracting(setB)

 

 

 

 

 

©️NAVER Boostcourse. All Rights Reserved.