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.
'앱 개발 > IOS' 카테고리의 다른 글
[IOS 프로그래밍을 위한 스위프트 기초] 1단원 08. 함수 고급 (1) | 2024.02.29 |
---|---|
[IOS 프로그래밍을 위한 스위프트 기초] 1단원 07. 함수 기본 (0) | 2024.02.29 |
[IOS 프로그래밍을 위한 스위프트 기초] 1단원 05. Any, AnyObject, nil (0) | 2024.02.28 |
[IOS 프로그래밍을 위한 스위프트 기초] 1단원 04. 기본 데이터 타입 (0) | 2024.02.28 |
[IOS 프로그래밍을 위한 스위프트 기초] 1단원 03. 상수와 변수 (0) | 2024.02.28 |