Array, Dictionary, Set을 간단하게 말하자면 아래처럼 표현할 수 있다.
Array - 순서가 있는 리스트 컬렉션
Dictionary - '키'와 '값'의 쌍으로 이루어진 컬렉션
Set - 순서가 없고, 멤버가 유일한 컬렉션
Array
Array사용방법은
가변 Array는 " var 변수이름 : Array<변수타입> = Array <Int>() "
불변 Array는 " let 변수이름 = [1,2,3,4] " 이다.
var integers :Array<Int> = Array<Int>() //Int형 Array
let immutableArray = [1,2,3] //불변
위와 같은 방법 한가지만 사용할 수 있는 것이 아니라, 아래처럼 여러 가지 방법으로 표현이 가능하다,
var integers: Array<Int> = [Int]()
var integers: Array<Int> = []
var integers: [Int] = Array<Int>()
var integers: [Int] = [Int]()
var integers: [Int] = []
var integers = [Int]()
변수의 타입을 지정해 줄 때는 Array<타입> = [타입]()을 사용해야 하고
그 뒤에는 Array<타입> = [타입]() = [] 이렇게 사용할 수 있는 것 같다.
Array에 데이터를 집어넣기 위해서는 append()를 사용하면 된다.
integers.append(1)
integers.append(10)
값을 수정하고 싶다면 아래처럼 하면 된다.
integers[0]=9
Array의 개수를 알고 싶다면. count를
print("integer's count : \(integers.count)")
print("integer contains 10? \(integers.contains(10))")
특정한 인덱스의 원소를 삭제하고 싶다면 remove(at:인덱스), 마지막 인덱스를 사용하고 싶다면 .removeLast() , 모든 원소를 삭제 하고 싶다면. removeAll()을 사용하면 된다.
integers.remove(at: 0) //해당 인덱스 원소 삭제
integers.removeLast() //마지막 원소 삭제
integers.removeAll() //모든 원소 삭제
Dictionary
Dictionary 사용 방법은
가변 : " var 변수이름 : Dictionary<키타입, 값 타입> = [키타입 : 값 타입]() "
불변 : " let initializedDictionary: [키타입: 값 타입] = ["name": "yagom", "gender": "male"] " 이다.
var anyDictionary : Dictionary<String, Any> = [String:Any]()
let initializedDictionary: [String: String] = ["name": "yagom", "gender": "male"]
Dictionary도 표현할 수 있는 다양한 방법이 있다.
var anyDictionary: Dictionary <String, Any> = Dictionary<String, Any>()
var anyDictionary: Dictionary <String, Any> = [:]
var anyDictionary: [String: Any] = Dictionary<String, Any>()
var anyDictionary: [String: Any] = [String: Any]()
var anyDictionary: [String: Any] = [:] //비어있는 Dictionary
var anyDictionary = [String: Any]()
타입 선언 : Dictionary <String, Any> = [String : Any]
Dictionary <string, any> = [String : Any]</string, any> = [:]
데이터를 추가하는 방법은 Dictionary변수[키] = 값 이다.
anyDictionary["someKey"] = "value"
anyDictionary["anotherKey"] = 100
같은 방법으로 값을 수정해 줄 수 있다.
값이나 키를 삭제하는 방법은 아래처럼 해주면 된다.
anyDictionary["someKey"] = nil //someKey에 해당하는 값을 없애주고 싶을 때 removeValue와 유사
anyDictionary.removeValue(forKey: "someKey") //특정 키 삭제 가능
Set
Set 사용 방법은 " var 변수이름 : Set<타입> = Set <타입>() "이다.
var integerSet: Set<Int> = Set<Int>()
새로운 데이터를 추가하려면. insert(??)를 사용하면 된다.
Set은 동일한 값은 여러번 추가해도 한 번만 저장이 된다.
integerSet.insert(1)
integerSet.insert(99)
integerSet.insert(99) //integerSet은 하나의 99를 갖는다.
integerSet.insert(100)
contains를 사용해서 멤버 포함 여부 확인할 수 있다. true/false를 반환한다.
print(integerSet.contains(1)
print(integerSet.contains(2))
remove를 사용하여 멤버 삭제를 할 수 있다.
integerSet.remove(99)
integerSet.removeFirst() //첫번째 멤버 삭제
count로 멤버 개수를 확인할 수 있다.
print("integerSet.count = \(integerSet.count)")
Set은 멤버의 유일성이 보장되기 때문에 집합 연산에 활용할 수 있다.
let setA: Set<Int> = [1, 2, 3, 4, 5]
let setB: Set<Int> = [3, 4, 5, 6, 7]
setA와 setB가 있을 때
둘의 합집합을 구하기 위해서는 A.union(B) 하면 된다.
let union: Set<Int> = setA.union(setB)
print(union) // [2, 4, 5, 6, 7, 3, 1]
둘의 합집합 오름차순 정렬은 합집합을 구한 것에 .sorted()하면된다.
let sortedUnion: [Int] = union.sorted()
print(sortedUnion) // [1, 2, 3, 4, 5, 6, 7]
둘의 교집합은 A.intersection(B)이다.
let intersection: Set<Int> = setA.intersection(setB)
print(intersection) // [5, 3, 4]
둘의 차집합은 A.subtracting(B) 이다.
let subtracting: Set<Int> = setA.subtracting(setB)
print(subtracting) // [2, 1]
'언어 > swift' 카테고리의 다른 글
[swift] 복습2 - Any, AnyObject, nil (0) | 2023.06.16 |
---|---|
[swift] 복습1 - 상수와 변수 그리고 데이터타입 (0) | 2023.06.16 |
댓글