[컬렉션] - 배열(Array)

썹스·2022년 12월 23일
0

Swift 문법

목록 보기
9/68

배열(Array)

배열(Array)은 Swift뿐만 아니라 모든 프로그래밍 언어를 통틀어서 가장 많이 사용하는 컬렉션(Collection) 타입입니다.

배열은 순서가 있는 컬렉션 타입이기 때문에 값의 중복을 허용합니다. 또한 같은 배열에는 동일한 데이터 타입만 할당할 수 있습니다. (Any타입을 사용하면 모든 타입 가능하긴 하지만... 추천하는 방법은 아닙니다...)

배열 공간에는 각각의 인덱스 번호가 부여됩니다. 인덱스 번호는 0부터 시작되며, 각각의 인덱스 번호는 순서(오름차순)가 존재합니다.

📌 빈 배열 만들기

빈 배열을 만드는 대표적인 방법으로는 세 가지가 존재합니다.

✅ 빈 배열 만들기

var arr1 = [Int]()
var arr2: [Int] = []
var arr3 = Array<Int>()

📌 배열에 데이터 추가하기

데이터를 추가할 때는 append(추가할 값) 메서드를 사용합니다.

배열 중간에 데이터를 추가할 때는 insert(추가할 값, at: 추가될 인덱스) 메서드를 사용합니다.

✅ 배열에 데이터 추가

// 배열에 값을 추가할 때는 append(<값>)를 사용한다.
// 배열 중간에 값을 추가 할 때는 insert(<값>, at:<인덱스>)
var arr = [1,2,3,4]

arr.append(5)         // [1, 2, 3, 4, 5]
arr.insert(0, at: 0)  // [0, 1, 2, 3, 4, 5]

📌 배열에 데이터 삭제하기

배열에 데이터를 삭제하는 방법은 크게 네 가지가 존재합니다.

✅ 특정 인덱스의 데이터를 삭제

arr.remove(at:n)   //배열의 n번째 값을 삭제

✅ 배열의 모든 데이터를 삭제

arr.removeAll()

✅ 배열의 첫 번째 데이터을 삭제

arr.removeFirst()
arr.removeFirst(n)  // 배열의 첫 번째(0)부터 n개 삭제 

✅ 배열의 마지막 데이터를 삭제

arr.removeLast()
arr.removeLast(n)  // 배열의 마지막 번째부터 n개 삭제 

📌 배열의 데이터 정렬

배열에서는 오름차순, 내림차순, 역순(반대) 정렬을 할 수 있는 메서드가 존재합니다.

✅ 오름차순 정렬

오름차순 정렬 메서드는 sort() == sort(by:<)이 있습니다.

arr.sort()  ==  arr.sort(by:<)

오름차순의 정렬 결과를 리턴하고, 원본을 그대로 하고 싶을 때는 sorted() 메서드를 사용합니다.

arr.sorted(by:<)  ==  arr.sorted(by:<)

✅ 내림차순 정렬

내림차순 정렬 메서드는 sort(by:>)이 있습니다.

arr.sort(by:>)

내림차순의 정렬 결과를 리턴하고, 원본을 그대로 하고 싶을 때는 sorted(by:>) 메서드를 사용합니다.

arr.sorted(by:>)

✅ 역순(반대) 정렬

역순(반대) 정렬 메서드는 reverse()이 있습니다.

arr.reverse()

역순(반대) 정렬 결과를 리턴하고, 원본을 그대로 하고 싶을 때는 reversed() 메서드를 사용합니다.

arr.reversed()

📌 배열의 최대/최소값 데이터

배열에 할당된 데이터의 최대/최소값을 알고 싶을 때는 max(), min() 메서드를 사용합니다.

배열의 최대/최소값 메서드를 사용하면 반환 값을 Optional(옵셔널) 타입으로 받게 됩니다. 이는 빈 배열의 가능성 때문입니다. (빈 배열에 max(), min() 메서드를 사용하면 nil이 출력)

문자(Character), 문자열(String)이 할당된 배열의 경우에는 유니코드 값을 기준으로 최대/최소값이 반환됩니다.

✅ 배열의 최대값

arr.max()     // 배열의 최대값 return

✅ 배열의 최소값

arr.min()     // 배열의 최솟값 return

📌 배열에 특정값(repeating)을 원하는 개수(count)만큼 초기화

배열은 repeating:키워드와 count:키워드를 사용하여 특정 값을 원하는 개수만큼 초기화할 수 있습니다.

✅ 특정값을 원하는 개수만큼 초기화

var x1 = Array(repeating: 1, count: 4)
var x2 = [Int](repeating:2, count: 4)

print(x,x1,x2)

/*
출력 결과
[1, 1, 1, 1] [2, 2, 2, 2]
*/

📌 그 외 배열의 기타 기능

✅ 배열의 데이터 수를 반환

arr.count     // 배열안에 데이터 수를 return

✅ 배열에 데이터 여부 확인

arr.isEmpty   // 배열안에 데이터가 없으면 true, 있으면 false return

✅ 배열의 첫 번째 데이터를 옵셔널 타입으로 반환

arr.first     // 배열의 첫 번째 데이터를 옵셔널 타입으로 return

✅ 배열의 마지막 데이터를 옵셔널 타입으로 반환

arr.last      // 배열의 마지막 데이터를 옵셔널 타입으로 return

✅ 배열안의 데이터 교환

arr.swapAt(n, m)    // 배열안의 n번 인덱스값과 m번 인덱스값을 교환

✅ 배열에 특정 데이터의 여부 확인

arr.contains(<value>)  // 배열안에 해당 값이 있으면 true return

이 외에도 배열에서 사용 가능한 메서드 및 기능들이 많이 있습니다.

profile
응애 나 코린이(비트코인X 코딩O)

0개의 댓글