일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 자바
- Sequelize
- AWS
- class
- vue
- 개발자
- props
- front-end
- Kotlin
- Nest.js
- SWIFT
- It
- restful api
- Producer
- 개발이 취미인 사람
- javascript
- file upload
- component
- node.js
- 상속
- 반복문
- 코틀린
- kafka
- java
- react
- back-end
- state
- swagger
- spring boot
- 조건문
- Today
- Total
개발이 취미인 사람
[Swift] 컬렉션(Array, Dictionary, Set) 개념 및 사용법 본문
[Swift] 컬렉션(Array, Dictionary, Set) 개념 및 사용법
RyanSin 2021. 6. 1. 11:28- 지난 시간
안녕하세요. 지난 시간에는 조건문에 대해 알아봤습니다.
혹시 놓치고 오신 분들은 아래 링크를 통해 학습하고 오시는 걸 추천드리겠습니다.
[Swift] 조건문 (if문 & switch/case문)
- 개요
이번 시간에는 Swift에서 많이 사용하는 컬렉션 타입에 대해 알아보겠습니다.
컬렉션 타입으로는 Array, Dictionary, Set이 있습니다.
*Array
Array는 순서가 있는 리스트 컬렉션입니다.
값을 저장할 때 순서대로 저장되며, 해당 값을 찾을 때 해당 순번(인덱스)을 통해 값을 찾을 수 있습니다.
1. Array 생성 및 사용법
var numbers: Array<Int> = Array<Int>()
//위와 동일하지만 다른 방식에 선언방법
var numbers: Array<Int> = [Int]()
var numbers: Array<Int> = []
var numbers: [Int] = Array<Int>()
var numbers: [Int] = [Int]()
var numbers: [Int] = []
var numbers = [Int]()
2. 사용법
- 데이터 추가
var numbers: Array<Int> = Array<Int>()
//데이터 추가
numbers.append(1)
numbers.append(2)
numbers.append(3)
print(numbers)
//실행 결과
[1, 2, 3]
//우리는 Int형 데이터를 설정했기 때문에 다른 타입은 허용이 안된다.
//다른 타입에 데이터를 추가하면 컴파일 에러가 난다.
numbers.append(0.5) //컴파일 에러
- 데이터 체크 및 조회
var numbers: Array<Int> = Array<Int>()
numbers.append(1)
numbers.append(2)
numbers.append(3)
//데이터 존재 여부 체크
var isCheck = numbers.contains(1) // true
print(isCheck)
//실행 결과
true
//데이터 조회
//Array 컬렉션 순서는 0번 부터 시작된다.
//위 1, 2, 3에 값을 추가 했다면 순서는 0, 1, 2 입니다.
var getNumber = numbers[0] // 1
print(getNumber)
//실행 결과
1
- 데이터 수정
var numbers: Array<Int> = Array<Int>()
numbers.append(1)
numbers.append(2)
numbers.append(3)
//0번째 데이터 값을 10으로 수정
numbers[0] = 10
print(numbers)
//실행 결과
[10, 2, 3]
- 데이터 삭제
var numbers: Array<Int> = Array<Int>()
numbers.append(1)
numbers.append(2)
numbers.append(3)
numbers[0] = 10
//데이터 삭제
numbers.remove(at:0) // 10 삭제
print(numbers)
// 실행 결과
[2, 3]
numbers.removeLast() // 컬렉션에 마지막 값 삭제 (값 2 삭제)
print(numbers)
//실행 결과
[2]
numbers.removeAll() // 모두 삭제
print(numbers)
//실행 결과
[]
//컬렉션 크기 조회 count 맴버 호출
print(numbers.count)
*Dictionary
Dictionary는 '키'와 '값'의 쌍으로 이루어진 컬렉션 타입입니다. 키와 값에는 어떤 데이터를 넣을지 타입을 설정합니다.
1. Dictionary 생성 및 사용법
var anyDictionary : Dictionary<String, Any> = [String : Any]()
// 위와 동일하지만 다른 방식에 선언방법
var anyDictionary : Dictionary<String, Any> = Dictionary<String, Any>()
var anyDictionary : Dictionary<String, Any> = [:]
var anyDictionary : [String : Any] = Dictionary<String, Any>()
var anyDictionary : [String : Any] = [String : Any]()
var anyDictionary = [String : Any]()
2. 사용법
- 데이터 추가
var anyDictionary : Dictionary<String, Any> = [String : Any]()
//동일 하지만 다른 방식에 데이터 추가
anyDictionary["이름"] = "개발이 취미인 사람"
anyDictionary["나이"] = 24
anyDictionary = ["이름": "개발이 취미인 사람","나이": 24]
print(anyDictionary)
//실행 결과
["이름": "개발이 취미인 사람", "나이": 24]
- 데이터 조회
var anyDictionary : Dictionary<String, Any> = [String : Any]()
anyDictionary["이름"] = "개발이 취미인 사람"
anyDictionary["나이"] = 24
//해당 키 값을 통해 데이터 조회
print("이름은 : \(anyDictionary["이름"]!)")
print("나이는 : \(anyDictionary["나이"]!)")
//실행 결과
이름은 : 개발이 취미인 사람
나이는 : 24
anyDictionary는 Optional 상태 이기 때문에 강제 추출을 통해 값을 추출한다.
- 데이터 수정
var anyDictionary : Dictionary<String, Any> = [String : Any]()
anyDictionary["이름"] = "개발이 취미인 사람"
anyDictionary["나이"] = 24
anyDictionary["이름"] = "오늘도 개발 화이팅"
print(anyDictionary)
//실행 결과
["이름": "오늘도 개발 화이팅", "나이": 24]
- 데이터 삭제
var anyDictionary : Dictionary<String, Any> = [String : Any]()
anyDictionary["이름"] = "개발이 취미인 사람"
anyDictionary["나이"] = 24
// 키에 해당하는 값 제거
anyDictionary.removeValue(forKey:"이름")
print("값 : \(anyDictionary)")
//실행 결과
값 : ["나이": 24]
anyDictionary["나이"] = nil
print("값 : \(anyDictionary)")
//실행 결과
값 : [:]
*Set
순서가 없으며, 값이 중복되면 기본에 값을 덮어 씌어 처리한다.
1. Set 생성 및 사용법
var integerSet : Set<Int> = Set<Int>()
2. 사용법
- 데이터 추가
var integerSet : Set<Int> = Set<Int>()
// 데이터 추가
integerSet.insert(1)
integerSet.insert(2)
integerSet.insert(99)
integerSet.insert(3)
integerSet.insert(99) // 중복되는 값 값이 반영되지 않음
- 데이터 체크 및 조회
var integerSet : Set<Int> = Set<Int>()
// 데이터 추가
integerSet.insert(1)
integerSet.insert(2)
integerSet.insert(99)
integerSet.insert(3)
//데이터 존재 여부 체크
integerSet.contains(1) // true
integerSet.contains(100) // false
//데이터 조회
for data in integerSet {
print(data)
}
//실행 결과
3
99
1
2
Set은 특정 값을 조회 할 수 없으며 반복문을 통해 접근해서 데이터를 찾을 수 있습니다.
- 삭제
var integerSet : Set<Int> = Set<Int>()
// 데이터 추가
integerSet.insert(1)
integerSet.insert(2)
integerSet.insert(99)
integerSet.insert(3)
//데이터 삭제
integerSet.remove(1) // {2, 3, 99}
//첫번째 데이터 삭제
integerSet.removeFirst() // {3, 99}
//크기 조회
print(integerSet.count) // 2
- 집합 사용
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 orderedUnion : [Int] = union.sorted()
// 교집합
let intersection : Set<Int> = setA.intersection(setB)
// 차집합
let subtracting : Set<Int> = setA.subtracting(setB)
이번 시간에는 Swift에서 사용되는 컬렉션 타입에 대해 알아봤습니다.
꼭 실습을 하시는 걸 추천드리겠습니다. :)
'언어(Programming Language) > Swift' 카테고리의 다른 글
[Swift] 함수 선언 및 사용법 (0) | 2021.06.07 |
---|---|
[Swift] 반복문 개념 및 사용법 (0) | 2021.06.02 |
[Swift] 조건문 (if문 & switch/case문) (0) | 2021.05.31 |
[Swift] 자료형, 변수, 상수 개념 및 사용법 (1) | 2021.05.30 |
[Mac] Xcode 설치 (앱 스토어 다운로드 실패 해결) (0) | 2021.05.30 |