Swift의 배열, 집합, 딕셔너리 타입은 제너릭 콜렉션으로 구현됩니다.
제네릭?
특정 타입만 다루지 않고 여러 종류의 타입으로 변신할 수 있도록 클래스나 메소드를 일반화시키는 기법
순서가 있는 리스트 컬렉션
- 인덱스(순서)를 통해 값에 접근을 할 수 있다.
- 다양한 리터럴 문법을 활용하여 표현할 수 있어서 본인이 편한 방식 or 팀에서 같이 작업한다면 팀 내에서 표현 방식을 맞추는게 좋다.
var integers: Array<Int> = Array<Int>()
메소드명 | 설명 |
---|---|
.append(원소) | 원소를 추가한다. |
.contains(원소) | 배열 안에 원소 유무를 bool타입으로 봔한한다. |
.remove(at:index) | index째 있는 원소를 삭제한다. |
.insert(at:index) | index째 원소를 추가한다. |
.removeAll() | 모든 원소를 지운다. |
.count | 원소의 갯수를 반환한다. |
.firstIndex(of: 원소) | 첫번째로 나오는 해당 원소의 위치를 반환한다. |
.lastIndex(of: 원소) | 마지막으로 나오는 해당 원소의 위치를 반환한다. |
.isEmpty | 배열이 비어있는지 bool타입으로 반환한다. |
[index] = 원소 | index 위치의 원소를 교체한다. |
.first / .last | 첫번째, 마지막 값을 반환한다. |
[index] | 특정 index의 값을 알고 싶다면 |
Key와 Value 쌍으로 이루어진 데이터 컬렉션
- 순서가 절대 보장되지 않는다. (Array와의 가장 큰 차이점)
- Key값으로 데이터를 접근할 수 있다.
- dictionary도 다양한 리터럴 문법으로 선언 가능하다.
var namesOfIntegers = [Int: String]()
메소드명 | 설명 |
---|---|
.updateValue(value, forKey: key) | key, value값을 통해 새로운 데이트를 추가한다. 수정방식은 동일한데, key값이 딕셔너리에 없으면 새로 추가한다. |
.removeValue(value, forKey: key) | 딕셔너리 값을 삭제한다. |
.removeAll() | 모든 딕셔너리 값 삭제한다. |
.count | 딕셔너리 원소 개수를 반환한다. |
.isEmpty | 딕셔너리가 비어있는지 bool타입으로 반환한다. |
순서가 존재하지 않고, 멤버가 유일한 것을 보장하는 데이터 컬력션 타입
- 아이템의 순서가 중요하지 않거나 아이템이 반복되면 안될 때 배열 대신 사용가능
- 집합에 저장하기 위해 타입은 반드시 hashable여야 함. hashable은 데이터를 간단한 숫자로 변할 수 있는 타입이다.
var letters = Set<Character>()
메소드명 | 설명 |
---|---|
.insert(원소) | 원소를 추가한다. |
.isEmpty | 배열이 비어있는지 bool타입으로 반환한다. |
.remove(원소) | 집합 안에 원소를 삭제한다. |
.contains | 메서드를 사용하여 집합에 특정 아이템이 포함되어 있는지 알 수 있다. |