본문 바로가기

프로그래밍 [KOR]/Swift

Swift의 컬렉션 타입 (Array, Dictionary, Set)

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

•Dictionary - '키'와 '값'의 쌍으로 이루어진 컬렉션

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


1. Array


  •멤버가 순서(인덱스)를 가진 리스트 형태의 컬렉션 타입

  •여러가지 리터럴 문법을 활용할 수 있어 표현 방법이 다양함


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
32
33
34
35
36
37
38
39
// 1. Array 선언 및 생성
var array: Array<Int> = Array<Int>()
 
// 동일표현
var array: Array<Int> = [Int]()
var array: Array<Int> = []
var array: [Int= Array<Int>()
var array: [Int= [Int]()
var array: [Int= []
var array = [Int]()
 
// 2. Array 활용
array.append(1)
array.append(199)
 
print(array) // [1, 199]
 
// 멤버 포함 여부 확인
print(array.contains(1)) // true
print(array.contains(20)) // false
 
// 멤버 교체
array[0= 10
 
// 멤버 삭제
array.remove(at: 0// 지정 삭제
array.removeLast() // 마지막 삭제
array.removeAll() // 전체삭제
 
// 멤버 수 확인
print(array.count)
 
// 인덱스를 벗어나 접근하려면 Exception Runtime Error 발생
array(0)
 
// 3. 불변 Array: let을 사용하여 Array 선언
let immutableArray = [123]
 
// 불변 Array 는 수정할 수 없습니다.
cs



2. Dictionary


  •'키'와 '값'의 쌍으로 이루어진 컬렉션 타입

  •Array 와 비슷하게 여러가지 리터럴 문법을 활용할 수 있어 표현 방법이 다양


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
32
33
// 1. Dictionary 의 선언과 생성
// Key가 String 타입이고 Value가 Any인 빈 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] = [:]
var anyDictionary: [String:Any]()
 
// 2. Dictionary 활용
// 키에 해당하는 값 할당
anyDictionary["someKey"= "value"
anyDictionary["anohterKey"= 100
 
print(anyDictionary) // ["someKey":"value", "anotherKey":100]
 
// 키에 해당하는 값 변경
anyDictionary["someKey"= "dictionary"
print(anyDictionary) // ["someKey":"dictionary", "anotherKey":100]
 
// 키에 해당하는 값 제거
anyDictionary.removeValue(forKey:"anotherKey")
anyDictionary["someKey"= nil
print(anyDictionary)
 
// 3. 불변 Dictionary: let을 사용하여 Dictionary 선언
let emptyDictionary: [String:String= [:]
let initializedDictionary: [String:String= ["name":"jinun""gender":"male"]
 
// 불변 Dictionary이므로 값 변경 불가
cs



3. Set


  •중복되지 않는 멤버가 순서없이 존재하는 컬렉션

  •Array, Dictionary 와 다르게 축약형이 존재하지 않음


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
32
33
34
35
36
37
38
39
40
41
42
43
44
// 1. Set 생성 및 선언
var intSet: Set<Int> = Set<Int>()
 
// insert: 새로운 멤버 입력
// 동일한 값은 여러번 insert 해도 한번만 저장됨
intSet.insert(1)
intSet.insert(10)
intSet.insert(10)
intSet.insert(100)
 
print(intSet) // {1, 10, 100}
 
// contains: 멤버 포함 여부 확인
print(intSet.contains(1)) // true
print(intSet.contains(99)) // false
 
// remove: 멤버 삭제
intSet.remove(10// {100, 1}
intSet.removeFirst() // {1}
 
// count: 멤버 개수
intSet.count // 1
 
 
// 2. Set 의 활용
// 멤버의 유일성이 보장되기 때문에 집합 연산에 활용하면 유용
let setA: Set<Int> = [12345]
let setB: Set<Int> = [34567]
 
// 합집합
let union: Set<Int> = setA.union(setB)
print(union) // [2, 4, 5, 6, 7, 3, 1]
 
// 합집합 오름차순 정렬
let sortedUnion: [Int= union.sorted()
print(sortedUUnion) // [1, 2, 3, 4, 5, 6, 7]
 
// 교집합
let intersection: Set<Int> = setA.intersection(setB)
print(intersection) // [5, 3, 4]
 
// 차집합
let subtracing: Set<Int> = setA.subtracing(setB)
print(subtracing) // [2, 1]
cs



❖출처: http://blog.yagom.net/


제 나름대로 생각을 정리하며 포스팅합니다.

정보전달에 있어 차질이 생기는 것을 우려해 나름대로 확실하게 검증을 하고 포스팅하려고 노력합니다.

본 포스팅에 잘못된 정보가 있거나 수정해야할 내용이 있다면 댓글 또는 아래의 이메일로 알려주시면 감사하겠습니다.

E-mail : silent_lhr@naver.com



공감은 로그인이 필요없습니다.

공감은 저에게 포스팅을 이어나갈 수 있는 힘이 됩니다.


'프로그래밍 [KOR] > Swift' 카테고리의 다른 글

Swift의 함수 고급  (0) 2018.10.02
Swift의 함수  (0) 2018.10.02
Swift의 Any. AnyObject, nil  (0) 2018.10.01
Swift의 기본 데이터 타입  (0) 2018.10.01
Swift의 변수와 상수  (0) 2018.10.01