728x90
변수나 상수에는 꼭 값 하나씩만을 저장할 수 있나요? 아닙니다.
swift의 컬렉션 타입(Array, Dictionary, Set)을 사용하면 값들의 배열을 컬렉션 타입에 저장할 수 있습니다.
🔸 Array
값을 담은 순서대로 index 번호가 붙는 배열입니다.
순서는 0부터 차례대로 붙습니다.
- Array에서 자주 사용하는 메서드
- append(값) : 배열에 값을 추가합니다.
- contains(값) : 배열에 해당 요소가 있는지 찾는 메서드입니다. Bool 타입으로 반환합니다.
- remove(at: 인덱스) : 원하는 인덱스의 값을 배열에서 제거해줍니다.
- removeFirst(개수) : 맨 앞부터 인덱스를 원하는 개수에 따라 제거해줍니다.
- removeLast(개수) : 맨 뒤부터 인덱스를 원하는 개수에 따라 제거해줍니다.
- removeAll() : 모든 인덱스를 제거해줍니다.
- count : 배열 내에 있는 값들의 개수를 알려줍니다.
- isEmpty : 배열이 비어있는지 알 수 있습니다. Bool 타입으로 반환합니다.
예제)
var someArray: Array<Int> = Array<Int>()
var someArray: [Int] = Array<Int>()
var someArray: [Int] = []
// 빈 배열을 만들어봅시다! 다 같은 표현입니다.
someArray.append(0)
someArray.append(1)
someArray.append(2)
// [0, 1, 2]
someArray[0] // 1
// 해당 인덱스에 들어있는 값을 알려줍니다.
someArray[1] = 3 // [0, 3, 2]
// 인덱스의 값을 변경할 수도 있습니다.
someArray.contains(1) // true
someArray.remove(at: 0) // [3, 2]
someArray.count // 2
someArray.isEmpty // false
someArray.removeFirst() // [2]
someArray.removeAll() // []
🔸 Dictionary
Key와 Value가 한 쌍으로 저장되는 자료구조입니다. (Key: Value)
Key 값이 중복될 수 없고 Array와 다르게 순서가 없습니다.
- Dictionary에서 자주 사용하는 메서드
- updateValue(Value, forKey: Key) : 키와 밸류를 업데이트해 줍니다. 기존에 존재한 키라면 덮어씁니다.
- removeValue(forKey: Key) : 키를 삭제해 줍니다.
- removeAll() : 모든 인덱스를 제거해줍니다.
- keys : 모든 키를 나열해 줍니다.
- values : 모든 밸류를 나열해 줍니다.
- sorted() : 정렬을 오름차순으로 나열해 줍니다.
- count : 배열 내에 있는 값들의 개수를 알려줍니다.
- isEmpty : 배열이 비어있는지 알 수 있습니다. Bool 타입으로 반환합니다.
- contains(where: 조건) : 배열에 해당 요소가 있는지 찾는 메서드입니다. Bool 타입으로 반환합니다. (조건은 클로저)
- filter(조건) : 조건을 만족하는 값만 새 딕셔너리로 반환해 줍니다. (조건은 클로저)
예제)
var someDictionary: Dictionary<String, Int> = Dictionary<String, Int>()
var someDictionary: Dictionary<String, Int> = [String: Int]()
var someDictionary: [String: Int] = [:]
// 빈 배열을 만들어봅시다! 다 같은 표현입니다.
someDictionary = ["1번": 100, "2번": 200, "3번": 300, "4번": 400]
// ["1번": 100, "2번": 200, "3번": 300, "4번": 400] 순서 뒤죽박죽
someDictionary["1번"] // Optional(100) 키에 따른 밸류를 보여줍니다. (옵셔널은 나중에)
someDictionary.keys // 1번, 3번, 2번, 4번
someDictionary.values // 200, 300, 100, 400
someDictionary.values.sorted() // 100, 200, 300, 400
someDictionary.removeValue(forKey: "4번") // ["1번": 100, "2번": 200, "3번": 300]
someDictionary.removeValue["3번"] = nil // 윗줄과 뜻이 같습니다.
someDictionary.count // 3
someDictionary.isEmpty // false
someDictionary.removeAll() // [:]
🔸 Set
Set은 Array와 다르게 순서가 없는 배열입니다.
그리고 한 Set 안에서는 값이 중복될 수 없습니다.
Set의 특성은 값이 중복될 수 없어 집합을 찾는데 유리합니다.
- Set에서 자주 사용하는 메서드
- insert(값) : 배열에 값을 추가합니다.
- contains(값) : 배열에 해당 요소가 있는지 찾는 메서드입니다. Bool 타입으로 반환합니다.
- remove(값) : 원하는 값을 배열에서 제거해줍니다.
- removeAll() : 배열 내 모든 값을 제거해줍니다.
- count : 배열 내에 있는 값들의 개수를 알려줍니다.
- isEmpty : 배열이 비어있는지 알 수 있습니다. Bool 타입으로 반환합니다.
- Set에서 자주 사용하는 집합 메서드
- 기준이 되는 배열.union(비교할 배열) : 합집합을 찾아줍니다.
- 기준이 되는 배열.intersection(비교할 배열) : 교집합을 찾아줍니다.
- 기준이 되는 배열.subtracting(비교할 배열) : 차집합을 찾아줍니다.
예제)
var someSet1: Set<Int> = Set<Int>()
var someSet2: Set<Int> = [1, 2, 3, 4, 5, 6]
// 빈 배열을 만들어봅시다!
someSet1.insert(0)
someSet1.insert(1)
someSet1.insert(2)
someSet1.insert(3)
// [0, 1, 2, 3]
someSet1.remove(3) // [0, 1, 2]
someSet1.count // 3
someSet1.isEmpty // false
let unionSet: Set<Int> = someSet1.union(someSet2) // [0, 1, 2, 3, 4, 5, 6]
let intersectionSet: Set<Int> = someSet1.intersection(someSet2) // [1, 2]
let subtractingSet: Set<Int> = someSet1.subtracting(someSet2) // [0]
someSet1.removeAll() // []
728x90
반응형
'iOS > Swift' 카테고리의 다른 글
[Swift] 논리 연산자 (2) | 2022.11.09 |
---|---|
[Swift] 반복문(while, repeat-while) (0) | 2022.11.09 |
[Swift] 주석과 데이터 타입 (0) | 2022.11.07 |
[Swift] 이름 짓기(Naming) (2) | 2022.11.06 |
[Swift] print 함수와 문자열 보간법 (0) | 2022.11.06 |
댓글