콜렉션 중 하나인 Set
set → 고유
배열과 비슷하지만...
- 배열처럼 중복으로 값을 넣을수 없다.
- 아무리 넣어도 고유한 값만 남는다.
- 순서가 정해져 있지 않다.
매번 출력되는 값들의 순서가 다르다.
insert
var myNumberSet = Set<Int>()
var myNumberSet : Set<Int> = Set<Int>()
myNumberSet.insert(1)
//(inserted true, memberAfterInsert 1)
myNumberSet.insert(2)
//(inserted true, memberAfterInsert 2)
myNumberSet.insert(2)
//(inserted false, memberAfterInsert 2)
myNumberSet.insert(3)
//(inserted true, memberAfterInsert 3)
myNumberSet.insert(3)
//(inserted false, memberAfterInsert 3)
count
중복값은 안들어가고 count는 3이 나옴
myNumberSet.count
// 3
myNumberSet
// {2, 3, 1}
For in
for aNumber in myNumberSet {
print("aNumber : \(aNumber)")
}
//aNumber : 2
//aNumber : 3
//aNumber : 1
그 외에도 콜렉션 [배열, 셋, 딕셔너리, 튜플]등이 가지고 있는 기본 메소드들을 제공함
var myFriends : Set<String> = ["만쥬", "짱구", "흰둥이"]
//{"짱구", "만쥬", "흰둥이"}
myFriends.contains("만쥬") // true
myFriends.contains("영희") // false
if myFriends.contains("짱구") {
print("내 친구중에 짱구가 있다!")
// 내 친구중에 짱구가 있다!
}
Remove
// 짱구의 인덱스를 가져와서
if let indexToRemove = myFriends.firstIndex(of: "짱구") {
print("indexToRemove : \(indexToRemove)")
// 짱구를 지운다.
myFriends.remove(at: indexToRemove)
// 짱구
}
if !myFriends.contains("짱구") {
print("내 친구중에 짱구가 없다!")
// 내 친구중에 짱구가 없다!
}
반응형