美文网首页swift
swift——Set

swift——Set

作者: 阿凡提说AI | 来源:发表于2017-02-25 21:37 被阅读21次

Set用来存储相同类型并且没有确定顺序的值。与数组不同的是,Set里的元素是无序的,并且每个元素都不能重复。

Set<Element>     // Element表示Set中允许存储的类型

创建Set

1创建空Set

var letters = Set<Character>()

2用数组字面量创建Set

var favoriteColors:Set<String> = ["红色",“绿色”,蓝色]

由于从数组字面量不能推断出Set类型,所以Set类型必须显式声明。但是,如果数组字面量的所有元素类型相同,则Set里元素的类型无需显式写出,可由系统自动判断。

var favoriteColors:Set = ["红色",“绿色”,“蓝色”]

访问和修改Set

1.获取Set中元素的数量。

var favoriteColors:Set = ["红色",“绿色”,“蓝色”]
let count = favoriteColors.count   // 获取元素的个数
print("我喜欢的颜色有\(count)种")

2.Set的增删查操作

var favoriteColors:Set = ["红色",“绿色”,“蓝色”]
// 1.添加
favoriteColors.insert("黄色")
print(favoriteColors)
// 2.删除
if let removeGreen = favoriteColors.remove("绿色"){
      print("我已经不喜欢\(removeGreen)了")
}else{
      print("我从来没喜欢过这个颜色")
}
// 3.检查是否包含某元素
if favoriteColors.contains("黑色"){
        print("好吧,我还喜欢这个颜色")
}else{
        print("黑色太沉重了,不是我的菜")
}
// 4.删除所有元素
favoriteColors.removeAll()
print(favoriteColors)

3.遍历Set

import UIKit
var favoriteColors:Set = ["red",“white”,“black”]
print("-----无序Set")
for color in favoriteColors{
        print(color)
}
print("-----有序Set")
for color in favoriteColors.sorted(){
        print(color)
}

Set之间的操作

var a:Set<Int> = [1,2,3,4,5]
let b:Set<Int> = [4,5,6,7,8]
// 1.两个集合的交集
a.intersection(b).sorted()
// 2.两个集合中不同的元素组成的集合
a.symmetricDifference(b).sorted()
// 3.两个结合的并集
a.union(b).sorted
// 4.a集合去掉两个集合的交集
a.subtracting(b).sorted

Set之间的关系

let a:Set<Int> = [1,2,3,4,5];
let b:Set<Int> = [1,2]
let c:Set<Int> = [4,5,6,7,8]
let d:Set<Int> = [1,2]
print("b是a的子集",b.isSubset(of:a))
print("a是b的父集",a.isSuperset(of:b))
print("b和c没有交集",b.isDisjoint(with:c))
print("b和d相等",b==d)

相关文章

网友评论

    本文标题:swift——Set

    本文链接:https://www.haomeiwen.com/subject/anjnwttx.html