Swift3(스위프트3)

swift3 스위프트3 Collections - Set 컬렉션 셋

알통몬_ 2017. 7. 3. 13:59
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 


컬렉션 두 번째 Set입니다.


Set 은 아래처럼 선언합니다.

     var fruitSet = Set<String>()

값을 넣을 때

     fruitSet.insert("Apple")

     fruitSet.insert("Banana")

어떤 값이 있는지 체크할 때

     fruitSet.contains("Apple")


삭제할 때

     fruitSet.remove("Apple")

     fruitSet.removeFirst()


갯수가 궁금할 때

     fruitSet.Count


또는 Arrays 처럼 선언과 동시에 값을 줄 수도 있습니다.


     var fruitSet2 : Set<String> = ["Apple", "Banana", "Melon", "Pear"]

그리고

     var fruitSet2 : Set = ["Apple", "Banana", "Melon", "Pear"] 처럼

사용해도 되지만 되도록이면 어떤값을 넣어줄 건지 전자처럼 <> 다이아몬드 태그 안에

타입을 명시적으로 표현해서 사용하는 것이 좋습니다.


그리고 Set은 값의 중복을 허용하지 않습니다.

     var name : Set<String> = ["알통몬", "근육몬", "괴력몬", "알통몬"]

위처럼 "알통몬" 이라는 값이 두 번 선언되었다면

인식은 한 번 밖에 인정되지 않습니다.


Set 은 또한 아래 메소드들을 제공해요.

합집합, 교집합, 차집합, 정렬

ex)

let setA : Set[Int] = [10, 20, 30, 40, 50]

let setB : Set[Int] = [30, 40, 50, 60, 70]


let setUnion : Set[Int] = setA.union(setB) // [10, 20, 30, 40, 50, 60, 70] 

위처럼 순서대로 나오는게 아니라 아무렇게나 나옵니다.

때문에 위처럼 정렬하고 싶을 때는 sorted() 메소드를 사용하면 됩니다.

let sortedSetUnion : Set[Int] = setUnion.sorted() //[10, 20, 30, 40, 50, 60, 70] 

교집합

setA.intersection(setB)


차집합

setA.subtracting(setB)

결과는 실행시켜 보시면 알 수 있겠죠?? ㅎㅎ


틀린부분은 아낌없이 지적부탁드립니다!

반응형