Array

고양이발냄새·2023년 8월 8일
0

array 생성하는 방법은 크게 4가지가 있다

init() – 빈 배열을 생성한다.
init(_: Sequence) – Sequence 타입의 값을 받아 같은 순서로 나열된 배열을 생성한다.
init(arrayLiteral:...) – Array(1, 2, 3, 4)와 같이 각 원소값을 직접 넘겨 배열을 생성한다.
init(repeating:count:) – 특정 값을 지정한 개수만큼 반복하여 배열을 생성한다.

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

let arr5 = [1,2,3,4,5]
let arr6 = Array(arrayLiteral: 1,2,3,4,5)
let arrr7 = Array(1...5)

인덴스 확인
특정값이 포함되어 있는지 여부

let numbers = Array(1...11)
print(numbers.contains(5)) // true
print(numbers.contains([1,2,3,4])) // true
print(numbers.contains { $0 > 11 }) // false
print(numbers.contains(where: { $0 > 5 })) // true

단일 Element
콜렉션 [Element]
where 조건문

let numbers = Array(1...11)
let strings = ["a", "b", "c"]

let index1 = numbers.firstIndex(of: 3) // Optional(2)
let index2 = numbers.firstIndex { $0 > 10 } // Optional(10)
let index3 = strings.index(after: 4) // 5
let index4 = strings.index(before: 1) // 2
let index5 = strings.index(1, offsetBy: 3) // 4
let index6 = strings.index(1, offsetBy: 3, limitedBy: 3) // nil
let index7 = strings.index(1, offsetBy: 3, limitedBy: 4) // <- 4까지는 가능하다는 뜻 Optional(4)

인덱스찾기

let newNumbers = Array<Int>(0...10)
print(newNumbers) // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let slice = newNumbers[1...5] //

print(slice) // [1, 2, 3, 4, 5]
print(slice.startIndex) // arraySlice는 원본의 인덱스를 그대로 가지고옴. 그러므로 스타트인덱스는 1에 해당하는 부분 newNumbers에서 1에 해당하는 부분임 인덱스는 [1]
print(slice.endIndex) // arraySlice는 원본의 인덱스를 가지고 오므로 마지막은 5 그에 해당하는 index는 newNumber에서 5이므로 [5] endIndex는 거기서 +1을 해주니까 끝
print(slice.count) // 5

for i in 0..<slice.endIndex {
    print(i)
}

이런식으로 쓸수 있음

profile
고양이좋아

0개의 댓글

관련 채용 정보