2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

[Swift-TIL] 컬렉션 - 여러 변수를 만드는법 (Set편)

2024. 10. 9. 18:56ㆍIOS/Swift-TIL
SMALL

이전 Array편에 이어서 이번엔 Set을 살펴보겠다.

Set는 한국어로 한다면 "집합"을 말한다.

 

이러한 Set 에는 Values 들이 존재한다.


Set은 Array랑 정말 비슷하다.

그래서 더 헷갈린다.

 

어떤점이 헷갈리는지 알아보자.

var A:Set<String> = []

Array의 경우는 대괄호를 감싸서 만드는 반면,

Set은 명확하게 Set을 넣어주고 만들어주어야 한다.

var A:Set<String> = ["Rock","Jazz","Classical"]

이렇게 보면 Array와 정말 비슷한것을 알 수 있다.

 

Set은 "집합" 이기 떄문에

부분집합, 교집합, 합집합 등등을 행할 수 있다.

그리고 특별한 점은 같은 요소들은 제거가 된다는 점이 있다.

즉, 중복된 요소는 제거 되는 것을 말한다.

 

Array는 중복이 되지만, Set은 집합이기 때문에

그러한 점이 불가피하다는 것또한 특징이다.

 

여기서 필자는 명확하게 어떻게 어떤식으로 다른지

그저 설명만 들었을 때에는 대강 느낌으로 알것 같았지만,

명확하게 알고자 조사했다.

 

Array 같은 경우 순서가 있는 자료 구조로,

중복된 요소를 허용하는데,

즉, 같은 값이 여러 번 들어갈 수 있고,

각 값은 인덱스(순서)로 구분된다.

 

아래 예시 코드를 보자.

var array = [1, 2, 2, 3]

여기서 숫자 2가 두 번 등장하지만,

서로 다른 인덱스(위치)에 있다면 문제가 되지 않는다.

 

Set 같은경우 집합 자료 구조로, 중복을 허용하지 않으며,

요소들이 순서가 없다.

Set에 값을 추가할 때, 이미 존재하는 값이면,

중복으로 저장되지 않고 무시된다.

let set: Set = [1, 2, 2, 3]

이 경우 Set은 중복된 2를 한 번만 저장해서

결과는 [1, 2, 3]이 되니 Array는 중복된 요소를 허용하지만,

Set은 중복된 값을 허용하지 않는다는 점이 큰 차이이다.

 

Set은 집합처럼 동작하기 때문에 중복된 값이 들어가는 것이 불가능하고,

그 특성 덕분에 중복이 자동으로 제거되는 것이 특징이다.

이제 Array와 Set의 차이를 확실하게 이해하게 되었다.

 

이미지를 보면, Array의 경우 인덱스가 존재했지만,

Set은 인덱스가 없다.

 

즉, Set은 순서가 없다는 것을 이야기 하고 있다.

이제 확실히 Set 이해했다.

다음으로 Dictionary 편으로 넘어가 보자.

728x90