Swift는 콜렉션(데이터의 집합)을 세가지 형태로 제공한다.
Array, Set, Dictionary 총 세 가지 형태로 나뉘게 된다.
먼저 Array를 살펴본다.
Array는 순서가 있는 리스트 콜렉션이며, 인덱스를 통해 접근할 수 있다.
공식 도큐먼트는 여기!
@frozen struct Array<Element>
Array에서는 다양한 리터럴 문법을 활용할 수 있어서 표현 방법이 정말 다양하다!
선언 방법은 다음과 같다.
var integers_1: Array<Int> = Array<Int>()
var integers_2: Array<Int> = [Int]()
var integers_3 : Array<Int> = []
var integers_4 : [Int] = Array<Int>()
var integers_5 : [Int] = []
var integers_6 = [Int]()
나는
var integer : Array<Int> = []
이 형태가 편하다!
다음은 다양한 element type을 갖는 배열이다.
// An Array of Int elements
var oddNumbers = [1, 3, 5, 7, 11, 13, 17]
// An array of String elements
var fruits = ["apple", "banana", "kiwi", "strawberry"]
배열 element의 타입을 정의해놓으면 empty array를 만들 수 있다.
var intArray : [Int] = []
var doubleArray : [Double] = []
Array(repeating: ,count: )
이니셜라이저를 이용해서 고정된 갯수의 디폴트 값들을 배열에 지정해줄 수 있다.
var initializedArray = Array(repeating: 0, count: 10)
print(initializedArray) // Print [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Array에서는 다양한 메소드를 지원한다. 많이 사용되는 메소드 몇가지를 알아보자.
append(_:)
사용한다. append(contentsOf:)
를 사용한다.fruits.append("mango")
fruits.append(contentsOf: ["watermelon", "peach"])
insert(at:)
: single element를 중간에 삽입insert(contentOf:at:)
: multiple element를 중간에 삽입fruits.insert("pulm", at: 2)
fruits.insert(contentsOf: ["orange", "linchy"], at: 5)
contains(_:)
: 배열에 해당 원소가 있는지 확인. true / false로 반환fruits.contains("peach")
fruits.contains("pineapple")
remove(at:)
: 배열 해당 인덱스의 원소를 지움removeLast(_:)
: 마지막 원소를 지움removeAll(_:)
: 모든 원소를 지움fruits.remove(at:2)
fruits.removeLast()
fruits.removeFirst()
fruits.removeAll()
firstIndex(of:)
: 해당 원소가 가장 첫번째로 나오는 인덱스lastIndex(of:)
: 해당 원소가 가장 마지막으로 나오는 인덱스
count는 앞서 봤던 것들과는 다르게 Instance Property다.
count
: 원소의 갯수만큼 Int형으로 반환
var integers : Array<Int> = [1, 2, 3, 4]
integers.count
배열의 첫번째 / 마지막 원소를 나타냄
integers.first
integers.last