일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- initializer
- init
- Terminal
- Protocol
- Xcode
- enum
- Method
- struct
- optional
- Swift
- url
- instance
- 코딩테스트
- tuist
- Foundation
- String
- interpace
- IOS
- UIKit
- property
- type
- 이니셜라이저
- 스위프트
- 디자인패턴
- Class
- extension
- initalizer
- Git
- delegate
- Unicode
Archives
- Today
- Total
아리의 iOS 탐구생활
[Swift] 배열(Array) 다루기 본문
반응형
정리하여 지속적으로 업데이트 예정...
✔️ 초기화
- 임의의 값을 넣어서 생성하기
let arr = Array(1...10)
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- 크기가 정해진 배열
let arr = Array(repeating: 0, count: 5)
// [0, 0, 0, 0, 0]
✔️ sorted() sort() 정렬하기
- sort는 원본을 정렬하고, sorted는 정렬된 값을 복제하여 리턴한다. 그래서 sort 사용시 변수(var)에만 적용할 수 있으므로 주의한다.
var arr = [5, 10, 4, 8, 1, 2]
let sortedArr = arr.sorted(by: >) // [10, 8, 5, 4, 2, 1]
arr.sort() // [1, 2, 4, 5, 8, 10]
- 숫자로만 이루어진 문자열 배열을 sort를 사용하여 정렬하면 제대로 정렬이 안된다. 같은 길이의 문자열일 경우 제대로 정렬이 되지만, 길이가 다를경우 맨 앞 숫자 기준으로 정렬이 이루어진다. 따라서 아래 메소드를 활용하자.
var arr = ["43", "2", "0", "20", "2", "231233", "234", "3596823948676890000453456737"]
arr.sort()
// ["0", "2", "2", "20", "231233", "234", "3596823948676890000453456737", "43"]
let arrSorted = arr.sorted{ $0.count == $1.count ? $0 < $1 : $0.count < $1.count }
// ["0", "2", "2", "20", "43", "234", "231233", "3596823948676890000453456737"]
✔️ reversed() 뒤집기
let str = ["안", "녕", "하", "세", "요", "."]
let reversedStr = str.reversed()
// [".", "요", "세", "하", "녕", "안"]
✔️ joined() 합체
- String 배열 합치기. 기본값은 빈 문자열이다.
let arr = ["나는", "고수가", "될거야", "!"]
print(arr.joined(separator: " "))
// 나는 고수가 될거야 !
- 2차원 배열을 1차원 배열로 합치기
let arr = [[1], [3], [5], [7]]
let joined = arr.joined(separator: [0])
print(Array(joined))
// [1, 0, 3, 0, 5, 0, 7]
- joined()를 사용하여 범위가 담긴 배열 활용
let ranges = [0..<3, 3..<6, 6..<10]
// joined를 사용하면 각각의 범위에 접근할 수 있음
for index in ranges.joined() {
print(index, terminator: " ")
}
// 0 1 2 3 4 5 6 7 8 9
✔️ map
같은 유형 또는 다른 유형의 값을 변환하여 return한다.
- String to IntArray
let arr = "1 2 3 4 5".split(separator: " ").map{ Int($0)! }
- IntArray to StringArray
let arr = [1, 2, 3, 4, 5].map{ String($0) }
✔️ filter
각 요소를 조건과 비교하여 일치하는 결과물을 가진 새로운 배열을 반환한다.
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let filter = arr.filter{ $0 % 2 == 0}
// [2, 4, 6, 8, 10]
let arr = ["abc", "12", "가나다", "34", "!?."]
let filter = arr.filter{ $0.count == 3 }
// ["abc", "가나다", "!?."]
✔️ reduce
각 요소들을 하나의 데이터로 통합하는 메서드.
let arr = [1, 2, 3, 4, 5]
let sum = arr.reduce(0,+) // 15
let multiply = arr.reduce(1, *) // 120
✔️ Apple 공식문서 참고
- Array
- joined()
- reversed()
- sorted()
- sort()
- map
- filter
- reduce
반응형
'Swift > 자료구조' 카테고리의 다른 글
[Swift] Set이란? 값 변경, 집합연산, 포함관계 (0) | 2021.08.11 |
---|---|
[Swift] Dictionary (0) | 2021.08.05 |
[Swift] for each 와 for in의 차이점 (0) | 2021.08.03 |
[Swift ] 소수점 다루기(ceil, floor, round, String format...) (0) | 2021.08.02 |
[Swift] 입력(readLine)과 출력(print) (0) | 2021.07.30 |
Comments