배열(Array)
일련의 순서(Index)를 가지는 리스트 형식의 값을 저장하는 데에 사용되는 자료형.
- 배열의 저장할 아이템의 타입에는 제약이 없지만 하나의 배열에 저장하는 아이템 타입은 모두 같아야 한다.
- 선언 시 배열에 저장할 아이템 타입을 명확히 정의해야 한다.
- 배열의 크기는 동적으로 확장할 수 있다.
//배열 정의
var cities: [String] = ["Seoul", "New York", "LA", "Santiago"]
print(cities[0]) //Seoul
print(cities[1]) //New York
print(cities[2]) //LA
print(cities[3]) //Santiago
딕셔너리(Dictionary)
Key와 Value 쌍으로 데이터를 저장하는 집단 자료형.
- 하나의 키와 하나의 데이터로 이루어져 있다.
- Key는 중복될 수 없다.
- Value 타입은 모두 일치 해야한다.
- Value 자체에는 순서가 없지만 Key에는 내부적 순서가 있어 for문을 통해서 순회 가능하다.
//딕셔너리 정의
var shoes: (String, Int) = ["nika":260, "adidax":265, "fuma":270]
var capital: (String, String) = ("KR":"Seoul", "EN":"London")
집합(Set)
중복되지 않은 유일 데이터들이 모인 집합 형태의 자료형.
- 같은 타입의 서로 다른 값을 중복 없이 저장하고자 할 때 사용하는 집단 자료형이다.
- 순서가 중요하지 않고, 중복 없이 한번만 저장되어야 하는 데이터들을 다룰 때 배열 대신 사용할 수 있다.
//집합 정의 (옳은 예시)
var genres: Set<String> = ["Classic", "Rock", "Balad"]
튜플(Tuple)
종류에 상관없이 데이터를 모은 자료형.
- 하나의 튜플에 여러가지 타입의 아이템을 저장할 수 있다.
- 오직 최초에 선언된 상태의 아이템만 사용할 수 있고 수정, 삭제, 추가 등 변경할 수 없는 것이 특징이다.
//튜플 정의
var tuple01: (Int, Int) = (100, 200)
var tuple02: (Int, String, Int) = (100, "a", 200)
자료구조 List, Map, Set 차이?
List | Map | Set | |
정의 | 순서와 중복이 있는 자료구조 | 키와 데이터를 같이 저장할 수 있는 자료 구조 | 순서없고 중복이 존재할 수 없는 자료구조 |
특징 | 인덱스를 사용 새로운 데이터를 추가, 삭제 가능 |
Key에는 중복될 수 없다. 순서가 유지 되지 않는다. Value의 중복은 허용된다. |
인덱스를 사용하지 않는다. |
장점 | 가변적인 배열 비어있는 데이터가 없음 |
뛰어난 검색속도를 가지고 있음 | 빠른 검색속도를 가지고 있음. |
- List : 데이터들이 순서대로 저장되며 중복을 허용한다.
- Map : 순서가 보장되지 않고 Key값의 중복은 허용하지 않지만 Value값의 중복은 허용된다.
- Set : 순서가 보장되지 않고 데이터들의 중복을 허용하지 않는다.
'iOS > Swift' 카테고리의 다른 글
TableView Dynamic Height 구현 (0) | 2021.12.12 |
---|---|
UIWebView 와 WKWebView 차이 (0) | 2021.12.12 |
[Swift] 메모리를 참조하는 방법 (Strong, Weak, Unowned) (1) | 2020.07.30 |
[Swift] Type Casting (0) | 2020.07.29 |
[Swift] Closure (0) | 2020.07.29 |