본문 바로가기

DEV/Swift

[Swift] Collection Type (배열)

Swift에서 Collection Type은 배열, set, dictionary 3가지로 볼 수 있음.

배열은 축약형으로도 쓰이며, 사실상 가장 많이 쓰는 타입.

 

let myArray = [1, 2, 3, 4]  //데이터 타입 생략 가능

var iArray: [Int] //가능

 

/* 콜렉션 타입 */
//Array: 순서가 있는 리스트 컬렉션
var intArray: Array<Int> = Array<Int>()
intArray.append(1)  //첫 공간에 1 입력
intArray.append(100)    //다음 공간에 100 입력
//print("intArray 배열에 '100'이 있나요?: \(intArray.contains(100))")    //contains
intArray.remove(at: 0)  //0번째 값 삭제(1 삭제)
intArray.removeLast()   //마지막 값 삭제(100삭제)
intArray.removeAll()    //모든 값 삭제
//print("intArray 배열에 들어있는 항목 수: \(intArray.count)")  //값이 들어있는 배열 수
var charArray: [Character] = []//빈 문자 어레이 생성(축약)
charArray.append("A")

//dictionary: 키와 값의 쌍으로 이루어진 컬렉션
//문자열 타입의 키와 any타입의 빈 dictionary 선언
var anyDictionary:Dictionary<String, Any> = [:]
anyDictionary["1key"] = 3   //첫 키와 값을 각각 1key:3으로 입력

//set: 순서가 없고 멤버가 유일한 컬렉션
//set는 축약 문법이 없음
var intSet1: Set<Int> = Set<Int>()    //정수형 set 선언
let intSet2: Set<Int> = [1, 2, 3]   // 상수로 set 값 설정
intSet1.insert(1)   //intSet1 첫 값에 '1' 입력
intSet1.insert(4)   //intSet1 다음 값에 '4' 입력
intSet1.insert(4)   //위의 삽입값과 중복되는데, set은 중복값은 처리되지 않음
//set은 집합으로 많이 이용됨.
let unionSet: Set<Int> = intSet1.union(intSet2) //합집합 [1, 2, 3, 4]
let sortedUnion: [Int] = unionSet.sorted()  //unionSet을 정렬함
let intersection: Set<Int> = intSet1.intersection(intSet2)  //교집합 [1]
let subtracting: Set<Int> = intSet1.subtracting(intSet2)    //차집합 [2, 3]
print(sortedUnion, intersection, subtracting)