배열 Array
- 특징
- 순서가 있는 리스트 형식의 값
- 순서 = 인덱스 index (정수)
- 인덱스는 맨 앞을 0으로 시작하여 순서대로 부여된다
- 하나의 배열 안 아이템의 데이터타입은 전부 같아야 한다
- 선언 시 배열 타입을 명확히 정의해야 한다
- 순회 탐색
- 순서가 있는 데이터를 처음부터 끝까지 차례대로 읽어들이는 것
- 예시 - 반복문
- 배열 탐색 시, 루프 상수에 담기는 값은 인덱스가 아니라 배열의 아이템 그 자체이다.
- 아이템 추가
- append(_:)
- 입력값을 배열의 맨 뒤에 추가
- insert(_: at:)
- 입력값을 원하는 위치에 직접 추가
- append(contentOf:)
- 한 번에 여러개의 값을 입력
- 범위 연산자 이용, 인덱스 참조
- 일정 범위의 배열 아이템을 한 번에 읽어들일 때 사용한다
집합 Set
- 특징
- 같은 타입의 서로 다른 값을 중복없이 저장할 때 사용
- 순서는 중요하지 않음
- 중복 없이 1번만 저장한다
- 데이터 추가
- insert()
- 데이터 확인
- count
- isEmpty
- contains() - 특정 아이템이 있는지 체크
- sorted() - 순서 없는 집합을 정렬해준다
- 만약, set1.insert("클래식")으로 한번 더 값을 넣는다고 해도 count는 여전히 4이다.
- 집합은 같은 값을 또 넣는다고 추가되지 않는다.
- 데이터 삭제
- remove() - 삭제할 값이 없다면 nil을 반환
- removeAll()
- 집합 연산
- intersection() 교집합
- symmetricDiffrence() 여집합
- union() 합집합
- 집합내용을 직접 변경하지 않음
- 연산 후 값을 반환함
- subtract() 차집합
- 집합내용을 직접 변경함
- 연산 후 값을 반환하지 않음
- 부분집합, 포함
- ㄱ.inSubset(of: ㄴ ) - 집합 ㄱ은 집합 ㄴ에 모두 속해있나요? (=ㄱ은 ㄴ의 부분집합 인가요?)
- ㄴ.inSuperset(of: ㄱ ) - 집합ㄴ은 집합 ㄱ의 상위집합인가요?
- inStrictSebset(of: ) / inStrictSuperset(of: )
- 더욱 엄격하게 검사
- 완전히 동일한 집합은 false 반환
- ㄷ.isDisjoint(with: ㄹ ) - 두 집합 ㄷ,ㄹ 사이에 공통값이 없나요?
- 없다면, 공집합 = true
- 있다면, 교집합 = false
- 집합을 이용한 배열 중복 제거
튜플 Tuple
- 특징
- 스위프트에서 제공하는 자료형
- 여러가지 타입의 아이템을 저장할 수 있다
- 선언 후, 수정이 불가능한 상수의 성격을 가진다
- 정의할 때 소괄호를 사용한다
- 괄호로 묶는 것 만으로 간단히 자료형이 만들어지기 때문에 코드를 단순하게 작성 가능해서 많이 사용
- 타입 어노테이션
- 명확히 자료형을 지정해주는 것
- 바인딩
- 튜플 아이템을 개별 변수/상수로 할당받을 수 있다
딕셔너리 Dictionary
- 특징
- 1개의 키 : 1개의 데이터
- 키는 중복될 수 없다
- 키를 중복해서 입력하면 기존에 있던 데이터가 제거된다(덮어씌워진다)
- 1개의 딕셔너리의 값은 데이터 타입이 전부 일치해야 한다
- 키 Key 는 문자, 정수, 실수, 인스턴스가 가능하다
- 선언
- Dictionary<key의 타입 : value의 타입>()
- 대입
- dictionary[key 값] = value 값
- updateValue(_: forKey:)
- 제거
- 직접 nil 할당
- 삭제하는 아이템 값 반환 X
- 명시적 removeValue(forKey:) 사용
- 삭제하는 아이템 값 반환 O
- 순회
- 딕셔너리는 순서가 없다
- 하지만 내부적으로 key를 바탕으로 해시 연산값 기준으로 정렬시킨다
- 이 특성을 이용하여 반복문 사용 가능
'iOS > Swift' 카테고리의 다른 글
[Swift] 열거형 enum (0) | 2023.11.20 |
---|---|
[Swift] 구조체 Struct / 클래스 Class (0) | 2023.11.16 |
[Swift] 일급함수(일급객체), 클로저(익명함수) (0) | 2023.11.14 |
[Swift] 함수,매개변수,inout 키워드 (0) | 2023.11.14 |
[Swift] 옵셔널 Optional (0) | 2023.11.14 |