FE 공부/Swift
Swift _ Collection
꼬질꼬질두부
2022. 10. 4. 13:45
어떤 대상들을 하나의 그룹으로 묶어두거나 모아둔 것 _ 데이터 모음의 자료형
- Array // 데이터를 순서대로 저장
- Dictionary // key와 값을 하나의 쌍으로 저장
- Set // 집합연산
Foundation Collection | Swift Collection |
- class로 구현된 collection - 참조 형식으로 사용 시 이용 - 객체 형식의 데이터만 저장 가능 - 불변 _ NSArray NSDictionary NSSet - 가변 _ NSMutableArray NSMutableDictionary NSMutableSet *collection의 가변성은 요소의 가변성에 영향을 미치지 않음 |
- 구조체로 구현된 collection - 값 형식 - 객체 형식과 값 형식 모두 저장 가능 - 불변 _ let - 가변 _var *collection의 가변성은 요소의 가변성에 영향을 미치지 않음 |
Array 배열
- 저장된 순서대로 정렬됨
- Single Type
- 개별 요소로 처리
- 0 based index
- 중간의 요소가 삭제되면 뒤의 인덱스들이 이동해 그 자리를 차지함
//Array Literal
[elem, elem, elem ...]//자동 추론이 가능하기 때문에 타입을 명시해주지않아도 Array로 저장된다
//Array Type
Array<T>
[T]
let strArr: Array<String>
let strArr: [String]
//예제
let nums = [1,2,3]
let emptyArray:[Int] = []
let emptyArray2 = Array<Int>()
let emptyArray3 = [Int]()
Array 연산
var numbers = [1,2,3,4]
numbers.append(5) // [1, 2, 3, 4, 5]
numbers.remove(at: 1) // 인덱스 1번째에 있는 2를 제거한다.
// 첫번째 값을 제거할 때: removeFirst()
//마지막 값을 제거할 때: removeLast()
// 마지막 값을 반환하면서 제거하는 방법: popLast()
// 빈 배열로 만드는 방법: removeAll()
//원하는 값의 인덱스를 찾을 때 firstIndex(of:)
...
Dictionary
- 사전과 유사한 형태로 값을 저장: key와 value_모든 key의 자료형이 같아야 하고 value 자료형이 같아야 함
- 정렬되지 않은 collection
- key를 통해서 값을 전달
//Dictionary literal
[key: value, key: value, ...]
var dict = ["A": "Apple", "B": "Banana"]
//Dictionary Type
Dictionary<K,V> //정식문법
[K:V]//단축문법
let dict1: Dictionary<String, Int>
let dict2: Dictionary[String: Int]
//Creating a Dictionary
let dict = ["A": "Apple", "B": "Banana"]
let emptyD: [String: String] = [:]
let emptyD2 = [String: String]()
let emptyD3 = Dictionary<String, String>()
Set
- 검색 속도가 중요한 경우 사용 _ hashing 알고리즘을 사용하기때문
- Single Type
- 동일한 값 저장 안함
- 하나의 데이터를 하나의 요소로 사용
- 정렬되지 않음
- 인덱싱도 사용 안함
//Set Type
Set<T>
let set: Set<Int> = [1,2,2,3,3,3]//직접 지정해주지 않으면 Array로 인식
set.count//3 _ 중복된 요소를 생략하기 때문
저장된 요소의 수 확인
.count
비어있는지 확인
.isEmpty