본문 바로가기

iOS/Swift

[Swift] Array, Dictionary, Set, Tuple

배열(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