빈배열 선언

var arr = [Int]()
var arr : [Int] = []
var arr : Array<Int> = []
var arr = [[Int]]()

배열선언과 동시에 Int 타입으로 초기값 부여 및 이차원배열

var arr = Array(1...5) // [1,2,3,4,5]
var arr = Array(repeating: 1, count: 5) // [1,1,1,1,1)
 
let arr2: [[Int]] = Array(repeating:Array(repeating:1, count: 5), count: 3) 
// 안쪽 count가 행, 바깥 count가 열 arr2[i][j]

배열 정렬

var arr = [1,3,2,4]
 
arr.sort()        // 오름차순 [1,2,3,4]
arr.sort(by: >) // 내림차순 [4,3,2,1]
//sort() - 원본 순서변경으로 배열정렬
//sorted() - 원본 변경없이 정렬한 배열을 반환.

3차원 배열

var array3D: [[[Int]]] = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
// array3D[0] 은 [[1, 2], [3, 4]] 를 참조하고 array3D[0][1] 은 [3, 4] 그리고 array3D[0][1][1] 은 값 4를 참조

배열 메소드 정리

var arr = [1,2,3,4,5]
 
arr = [] //[]
// arr is now an empty array, but is still of type [Int]
 
arr = [1,2,3,4,5] // [1,2,3,4,5]
 
arr.append(6) // [1,2,3,4,5,6]
// arr now contains 1 value of type Int
 
// 인덱스로 원소 확인
arr[2] // 3
 
// 원소로 인덱스 확인 (옵셔널, 값이 없으면 오류)
arr.firstIndex(of: 3)! // 2
 
// 인덱스로 원소 지우기
arr.remove(at: 2) // [1,2,4,5,6]
 
// 맨 뒤 원소를 지우고 return (옵셔널이 아님, 배열이 비어있으면 에러)
arr.removeLast() // [1,2,4,5]
 
// 특정 인덱스에 원소 넣기
arr.insert(3, at: 2) // [1,2,3,4,5]
 
// 특정 원소 있는지 체크 bool type
arr.contains(3) // true
 
// 순서 반전
arr.reverse() // [5,4,3,2,1]
 
// 첫 원소를 지우고 return (옵셔널이 아님, 배열이 비어있으면 에러)
arr.removeFirst() // [4,3,2,1]
 
// 첫 원소 return (옵셔널, 값이 없으면 오류)
arr.first! // 4
 
// 마지막 원소 지우고 return (옵셔널, 배열이 비어있으면 return nil)
arr.popLast()!
 
// 마지막 원소 return (옵셔널)
arr.last!
 
// 원소의 최대값, 최소값 (옵셔널)
var min = arr.min()! // 1
var max = arr.max()! // 5
 
// 모든 원소 지우기
arr.removeAll()
 
// 조건을 만족하는 모든 원소 지우기 
arr.removeAll(where: {$0 % 2 == 0}) 
//arr.removeAll{$0 % 2 == 0} // 위 코드 함축
 
// 원소 스왑
arr.swapAt(_:, _:)

맵핑(map)

var string = ["1","2","3","4"]
string.map { Int($0)! } // [1,2,3,4] 각 원소를 전부 Int로 맵핑

필터(filter)

var array = [1,2,3,4]
array.filter { $0 % 2 == 0 } // [2,4] 조건에 맞는 수만 뽑아냄

증감(reduce)

var array = [1,2,3,4]
array.reduce("", +)// 문자열 합
array.reduce(0, +) // 숫자 합

배열 인덱스(index), 값(value) 순회 참조

var arr = [1,2,3]
for n in arr {
    print(n)
}
 
for (index, value) in arr.enumerated() {
    print("\\(index), \\(value)")
}
 
for i in 0..<arr.count {
    print(arr[i])
}
 
for i in arr.indices {
    print(arr[i])
}

배열 뒤집기(reverse) 순회 참조

var arr = [1,2,3]
arr.reverse()
 
// 순회 참조 가능
for n in arr{
    print(n)
}
 
print(arr[0])