본문 바로가기
iOS/Swift

[Swift] 컬렉션 타입(Array, Dictionary, Set)

by 혜모리 2022. 11. 9.
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

댓글