Swift - 집합(Set)이란? (1)
Swift - 집합(Set)이란? (1)
집합(Set)이란?
- 배열과 매우 유사하지만 순서가 없고 중복을 허용하지 않는 집단 자료형
- 데이터를 저장할 때 내부적으로 해시 알고리즘을 통해 저장하고 해시값이 같은 데이터는 저장하지 않음.
선언 및 초기화 방식에는 배열과 마찬가지로 정적, 동적으로 나뉨.
정적 선언 및 초기화
1
var ex: Set = ["서울", "대구", "부산"]
- 정적으로 값을 넣을 때는 배열과 같은 형태로 사용하지만, 타입 어노테이션을 통해
Set이라는 것을 명시해줘야함.
Set은 집합 구조체임.
동적 선언 및 초기화
1
var ex: Set<String> = Set()
데이터 삽입
insert():Set에 데이터를 삽입할 때 사용
예시
1
2
3
4
var ex: Set<String> = Set()
ex.insert("서울")
ex.insert("대구")
집합 순회 탐색
Set도Array(배열)처럼 순회 탐색이 가능함- 주로 반복문을 통해 처리
예시
1
2
3
4
5
6
7
8
9
var ex: Set<String> = Set()
ex.insert("서울")
ex.insert("부산")
ex.insert("대구")
for element in ex{
print("element : \(element)")
}
결과
1
2
3
element : 부산
element : 서울
element : 대구
집합은 순서를 보장하지 않기 때문에 출력되는 순서가 달라질 수 있음.
데이터 제거
remove():Set에 존재하는 데이터 제거- 삭제된 데이터를 반환해주며 만약 삭제된 데이터가 없을 경우
nil을 반환
- 삭제된 데이터를 반환해주며 만약 삭제된 데이터가 없을 경우
removeAll():Set에 존재하는 모든 데이터 제거
예시
1
2
3
4
5
6
7
var ex: Set<String> = Set()
ex.insert("서울")
ex.insert("부산")
ex.remove("서울")
ex.removeAll()
집합 길이, 빈 집합 여부 확인
count속성: 집합의 길이 반환isEmpty: 빈 집합일 경우true아니면false
예시
1
2
3
4
5
6
7
8
9
10
var ex: Set<String> = Set()
ex.insert("서울")
ex.insert("부산")
print(ex.count)
ex.removeAll()
if ex.isEmpty{
print("빈 집합")
}
결과
1
2
2
빈 집합
특정 데이터가 집합에 속해있는지 확인
contains(): 매개 변수로 넘어온 값이Set에 포함되어 있는지 확인
예시
1
2
3
4
5
6
7
8
9
var ex: Set<String> = Set()
ex.insert("서울")
ex.insert("부산")
if ex.contains("서울"){
print("포함됨")
}else{
print("포함되지 않음")
}
결과
1
포함됨
데이터 정렬
sorted(): 데이터를 오름차순으로 정렬하여 배열 형태로 반환- 다른 정렬 조건을 추가해야할 경우 클로저를 통해 추가 가능
예시
1
2
3
4
5
var ex: Set = ["서울", "부산", "대구"]
for element in ex.sorted(){
print("element : \(element)")
}
결과
1
2
3
element : 대구
element : 부산
element : 서울
This post is licensed under CC BY 4.0 by the author.