[Swift] 배열

Judy·2021년 11월 28일
0

Swift 공부

목록 보기
2/11

1. 배열의 정의

순서가 정렬된 임의 접근 콜렉션
An ordered, random-access collection.

배열은 앱에서 자주 쓰이는 데이터 타입으로 여러 데이터를 한 번에 묶어서 처리할 때 용이하다. 정수, 문자열, 클래스 등 다양한 타입을 요소로 가질 수 있다.

2. 배열 선언 방법

2-1 직접 선언

// An array of 'Int' elements
let oddNumbers = [1, 3, 5, 7, 9, 11, 13, 15]

// An array of 'String' elements
let streets = ["Albemarle", "Brandywine", "Chesapeake"]

2-2 빈 배열 선언

// Shortened forms are preferred
var emptyDoubles: [Double] = []

// The full type name is also allowed
var emptyFloats: Array<Float> = Array()

2-3 Default로 채워서 선언

var digitCounts = Array(repeating: 0, count: 10)
print(digitCounts)
// Prints "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]"

3. 배열 값 접근

3-1 모든 요소에 접근할 때 : for-in

for value in arr {
    print("Array has \(value).")
}

3-2 빈 배열인지 확인 : isEmpty

if arr.isEmpty {
    print("arr is empty.")
} else {
    print("arr has element")
}

3-3 첫 번째, 마지막 요소 : first, last

if let firstElement = arr.first, let lastElement = arr.last {
    print(firstElement, lastElement, separator: ", ")
}

빈 배열일 경우 nil을 반환

3-4 인덴스 번호로 직접 접근 : []

print(oddNumbers[0], oddNumbers[3], separator: ", ")
// Prints "1, 7"

4. 요소 추가

var arr = ["A"]

4-1 단일 요소 추가 : append

arr.append("B")
// ["A", "B"]

4-2 여러 요소 추가 : append(contentsOf:)

arr.append(contentsOf: ["C", "D"])
// ["A", "B", "C", "D"] 

4-3 특정 위치에 추가 : insert(_:at:), insert(contentsOf:at:)

arr.insert("X", at: 2)
// ["A", "B", "X", "C", "D"]

5. 요소 삭제

var arr = ["A", "B", "C", "D"] 

5-1 특정 위치 삭제 : remove(at:)

arr.remove(at: 2)
// ["A", "B", "D"]

5-2 특정 범위 삭제 : removeSubrange(_:)

var measurements = [1.2, 1.5, 2.9, 1.2, 1.5]
measurements.removeSubrange(1..<4)
print(measurements)
// Prints "[1.2, 1.5]"

5-3 마지막 요소 삭제 : removeLast()

arr.removeLast()
// ["A", "B"]

5-4 전체 요소 삭제

arr.removeAll()
// []

6. 기타 기능

- 배열 요소 개수 : count()

- 배열 요소 값 교체

if let i = students.firstIndex(of: "Maxime") {
    students[i] = "Max"
}

- 특정 값 포함 확인 : contains()


7. 정렬

var arr = [1, 5, 3, 2, 4]

7-1 직접 정렬 : sort(by: )

arr.sort()

print(arr)	// [1, 2, 3, 4, 5] 

arr.sort(by: >)	// [5, 4, 3, 2, 1]

arr.reverse() // [5, 4, 3, 2, 1]

기본은 오름차순, 내림차순으로 하고 싶으면 (by : >) 또는 reverse 사용 가능
원본 배열이 정렬됨

7-2 정렬된 배열 값 반환 : sorted(by:)

// arr.sorted() 반환 값을 사용하지 않아서 에러

var sortedArr = arr.sorted()

print(sortedArr)	// [1, 2, 3, 4, 5] 

print(arr) = [1, 5, 3, 2, 4]

sortedArr = arr.sorted(by: >)

print(sortedArr)	// [5, 4, 3, 2, 1]

원본은 변하지 않고 정렬된 배열 값을 리턴함


계속 추가 예정...

참고: Array | Appler Developer Documentation

profile
iOS Developer

0개의 댓글