Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Combine
- ios
- swift 5.9
- Firebase Analytics
- swiftdata
- Tuist Swift
- Subscribe
- swift database
- KeyPath
- swift 6
- swift
- SeSAC
- swift db
- ribs
- xcode
- arc
- realm
- Subject
- RxSwift
- Tuist
- GCD
- 카카오뱅크 ios
- ios swiftdata
- JSON
- ios database
- SwiftUI
- 네트워크 통신
- Firebase
- Swift Tuist
- observable
Archives
- Today
- Total
천원의 개발
Swift 컬렉션 타입(Array, Dictionary, Set) 본문
Array: 순서가 있는 리스트 컬렉션
// 배열 선언
var array: Array<Int> = []
var array: [Int] = []
var array = [Int]()
var array = Array(repeating: 1, count: 5) // [1,1,1,1,1)
//배열 추가
array.append(1)
array.append(contentsOf: [2,3,4])
print(array) // [1,2,3,4]
//배열 삽입
array.insert(0, at: 5)
print(array) // [5,1,2,3,4]
// 배열 요소 변경하기
var array = [1, 2 ,3]
array[0] = 10 // [10, 2, 3]
array[0...2] = [10, 20, 30] // [10, 20, 30]
array[0...2] = [0] // [0]
// 삭제
array.remove(at: 0) // 지정삭제
array.removeLast() // 마지막 삭제
array.removeAll() // 전체 삭제
array.removeSubrange(1...3) // 특정 범위 삭제
//정렬
array.sort() // 오른차순 정렬
array.sort(by: >) // 내림차순 으로 정렬
let sortedArray = array.sorted() // 정렬한 값 리턴
array.contains(1) // 멤버 포함여부
array.swapAt(0, 4) // 배열 두개 위치 swap
array.shuffle() // 배열 무작위 섞기
array.count // 멤버 수 확인
array.isEmpty // 비어있는지
array.first // 첫번째
array.last // 마지막
Dictionary: "키"와 "값"의 쌍으로 이루어진 컬렉션 타입
// 딕셔너리 선언
var dictionary: Dictionary<String, Int> = [:]
var dictionary: [String: Int] = [:]
var dictionary: [String: Int]()
// 키에 해당하는 값 할당
dictionary["apple"] = 200
dictionaty.updateValue(300, forKey: "orange")
print(dictionary) // ["apple":200, "orange":300]
//요소 접근
dictionary["apple"] // Optional(200)
dictionary["apple", default: 100] // 200
//키에 해당하는 값 제거
dictionary.removeValue(forKey: "apple")
dictionary["apple"] = nil
dictionary.removeAll() // 전체삭제
// 나열
dictionary.keys // key 나열 "apple", "orange"
dictionary.values // 200, 300
dictionary.count // 갯수 확인
dictionary.isEmpty // 비어있는지 확인
Set: 정렬되지 않은 컬렉션, 배열과 달리 중복 요소를 허용하지 않는다
// set 선언
var set: Set<Int> = []
var set: Set<Int>()
var set: NSSet = [] // 여러 타입을 저장하는 Set 생성
set.count // 갯수 확인
set.isEmpty // 비어있는지
var set: Set<Int> = [1, 2, 3, 4]
set.contains(1) // 요소 확인 true
// 값넣기
set.insert(1)
set.update(with: 1)
// 삭제
set.remove(1)
set.removeAll()
// 포함관계
var set1: Set<Int> = [1, 2, 5, 0]
var set2: Set<Int> = [1, 2]
set1.isSubset(of: set2) // set1은 set2의 부분집합이냐? false
set1.isSuperset(of: set2) // set1은 set2의 상위집합이냐? true
set1.isDisjoint(with: set2) // set1은 set2와 서로수 집합
var a: Set = [1,2,3,4,5,6,7,8,9]
var b: Set = [1,3,5,7,9]
var c: Set = [2,4,6,8,10]
// 1. intersection : 교집합을 새로운 Set으로 리턴
a.intersection(b) // [1, 3, 5, 9, 7]
b.intersection(c) // [] : 겹치는 요소 없음
// 2. union : 합집합을 새로운 Set으로 리턴
a.union(b) // [2, 7, 9, 4, 8, 5, 6, 1, 3]
b.union(c) // [9, 3, 10, 4, 1, 8, 7, 2, 6, 5]
// 3. sysmetricDifference : 여집합을 새로운 Set으로 리턴
a.symmetricDifference(b) // [4, 8, 6, 2]
b.symmetricDifference(c) // [10, 9, 8, 6, 7, 1, 2, 4, 3, 5]
// 4. subtracting : 차집합을 새로운 Set으로 리턴
a.subtracting(b) // [4, 8, 6, 2]
b.subtracting(c) // [9, 1, 3, 5, 7]
'Swift 코딩테스트 준비' 카테고리의 다른 글
stride(form: to: by:) (0) | 2022.05.18 |
---|---|
uppercased, lowercased (0) | 2022.05.18 |
Swift forEach 정리 (0) | 2022.05.15 |
Swift enumerated정리 (0) | 2022.05.15 |
고차원함수 map, filter, reduce 정리 (0) | 2022.05.14 |