231130 TIL_ 배열

ykyo·2023년 11월 30일
0

Array

// 1. 타입 추론으로 생성하기
var array1 = [1, 2, 3]
var array2 = [] // Error. 타입 추론으론 빈 배열 생성 불가

// 2. 타입 Annotation 으로 생성하기
var array3: [Int] = [1, 2, 3]
var array4: [Int] = [] // Ok, 빈 배열 생성

// 3. 생성자로 생성하기
var array5 = Array<Int>()
var array6 = [Int]()
var array7 = [Int](repeating: 0, count: 10) //생성과 동시에 10개 Element 생성 및 0으로 초기화
---------------------------------------------------------------------------------------------------
// 배열 갯수 확인하기
var array1 = [1, 2, 3]

let count: Int = array1.count // 3
let isEmpty: Bool = array1.isEmpty // false
---------------------------------------------------------------------------------------------------
// 배열 요소에 접근하기 
var array1 = [1, 2, 3]

//1. Subscript 로 접근하기
array1[0] //1
array1[1] //2

//2. 범위로 접근하기
array1[0...1] // [1, 2]

//3. 속성으로 접근하기
array1.first //Optional(1)
array1.last //Optional(3)
---------------------------------------------------------------------------------------------------
// 배열에 요소 추가하기
// 1. append : 끝에 추가
var array1 = [1, 2, 3]
array1.append(4) // [1, 2, 3, 4]
array1.append(contentsOf: [5, 6, 7]) // [1, 2, 3, 4, 5, 6, 7]

// 2. insert : 중간에 추가
var array2 = [1, 2, 3]
array2.insert(0, at: 0) // [0, 1, 2, 3]
array2.insert(contentsOf: [10, 100], at: 2) //[0, 1, 10, 100, 2, 3]
---------------------------------------------------------------------------------------------------
// 배열의 요소 변경하기
//1. Subscript 로 변경하기
var array1 = [1, 2, 3]
array1[0] = 10               //[10, 2, 3]
array1[0...2] = [10, 20, 30] //[10, 20, 30]
array1[0...2] = [0]          //[0]
array1[0..<1] = []           //[]

//2. replaceSubrange로 바꾸기 (범위 변경 시)
var array2 = [1, 2, 3]
array2.replaceSubrange(0...2, with: [10, 20, 30])  //[10, 20, 30]
array2.replaceSubrange(0...2, with: [0])           //[0]
array2.replaceSubrange(0..<1, with: [])            //[]
---------------------------------------------------------------------------------------------------
// 배열의 요소 삭제하기
//1. 일반적인 삭제하기
var array1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]

array1.remove(at: 2)    //[1, 2, 4, 5, 6, 7, 8, 9] Index 2번 삭제
array1.removeFirst()    //[2, 4, 5, 6, 7, 8, 9] 처음만 삭제
array1.removeFirst(2)   //[5, 6, 7, 8, 9]   처음부터 2개 삭제
array1.removeLast()     //[5, 6, 7, 8] 마지막 삭제
array1.popLast()        //[5, 6, 7] 마지막 삭제
array1.removeLast(2)    //[5] 마지막부터 2개 삭제
array1.removeAll()      //[] 전부 삭제

//2. 특정 범위 삭제하기
var array2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]

array2.removeSubrange(1...3)  //[1, 5, 6, 7, 8, 9] Index 1~3 삭제
array2[0..<2] = []            //[6, 7, 8, 9] Index 0,1 빈배열로 설정
---------------------------------------------------------------------------------------------------
// 배열 비교하기
var array1 = [1, 2, 3]
var array2 = [1, 2, 3]
var array3 = [1, 2, 3, 4, 5]

array1 == array2              //true
array1.elementsEqual(array3)  //false
---------------------------------------------------------------------------------------------------
// 배열 정렬하기
let array1 = [1, 5, 3, 8, 6, 10, 14]

// 1. sort : 배열을 직접 "오름차순"으로 정렬
array1.sort()
//출력값: [1, 3, 5, 6, 8, 10, 14]

//1-1. sort + 클로저 : 배열을 직접 "내림차순"으로 정렬
array1.sort(by: >)
//출력값: [14, 10, 8, 6, 5, 3, 1]

//2. sorted : 원본은 그대로 두고, "오름차순"으로 정렬된 새로운 배열을 만들어 리턴
let sortedArray = array1.sorted()
//출력값: [1, 3, 5, 6, 8, 10, 14]

//2-1. sorted + 클로저 : 원본은 그대로 두고, "내림차순"으로 정렬된 새로운 배열을 만들어 리턴
let sortedArray2 = array1.sorted(by: >)
//출력값: [14, 10, 8, 6, 5, 3, 1]
profile
for ios, swift, etc.

0개의 댓글