Swift 集合(Set)含代碼

Swift 集合(Set)

Swift的集合(Set)是一個簡單的容器,可以按照無序列表的方式存儲多個相同類型的值。愛掏網 - it200.com它不能存儲重復的值。愛掏網 - it200.com這里的無序列表指的是你按照設置的方式無法獲得項目的順序。愛掏網 - it200.com

Swift集合(Set)與Swift數組的主要區別在于,Swift集合(Set)不允許重復存儲相同的值,而Swift數組可以。愛掏網 - it200.comSwift集合(Set)確保每個元素只出現一次,且元素的順序不重要。愛掏網 - it200.com

存儲在Swift集合(Set)中的值必須是 可哈希的(hashable)愛掏網 - it200.com可哈希的意思是,它必須提供一個hashValue屬性。愛掏網 - it200.comhashValue用于訪問集合中的元素,因為集合是無序的。愛掏網 - it200.com

所有Swift的基本數據類型(例如String、Int、Double和Bool)默認都是可哈希的,可以用作集合的值類型。愛掏網 - it200.com我們也可以在Swift中創建自己的可哈希類型,以便存儲在集合中。愛掏網 - it200.com

如何在Swift中聲明集合(Set)

我們可以聲明一個集合(Set)來存儲一些值。愛掏網 - it200.com

示例

let someIntSet:Set = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(someIntSet)

輸出:

[2, 4, 9, 5, 6, 7, 3, 1, 8]

聲明一個包含重復值的集合

let someIntSet:Set = [1, 2, 3, 4, 8, 8, 8, 5, 5]
print(someIntSet)

輸出:

[2, 4, 5, 3, 1, 8]

在上面的程序中,我們輸入了重復的值5和8。愛掏網 - it200.com但是在輸出中,我們可以看到重復的值已經被移除。愛掏網 - it200.com

在Swift中訪問集合元素

我們不能像訪問數組元素那樣以相同的方式訪問集合元素,因為集合元素是無序的。愛掏網 - it200.com

因此,我們必須使用集合的方法和屬性或使用for-in循環來訪問集合元素。愛掏網 - it200.com

在Swift中訪問所有集合元素

示例

var someIntSet:Set = [1, 2, 3, 4, 5, 6]
for val in someIntSet {
    print(val)
}

輸出:

5
6
2
3
1
4

使用 remove() 方法訪問選擇性的集合元素

我們可以使用 remove() 方法訪問集合中的選擇性元素。愛掏網 - it200.com

示例

var someIntSet:Set = [1, 2, 3, 4, 5, 6]
let someVal = someIntSet.remove(5)
print(someVal)
print(someIntSet)

輸出結果:

Optional(5)
[6, 2, 3, 1, 4]

在上述程序中,你可以看到remove()方法返回一個可選的字符串。愛掏網 - it200.com建議按照以下方式進行可選處理。愛掏網 - it200.com

使用remove()方法的可選處理

示例

var someIntSet:Set = [1, 2, 3, 4, 5, 6]
if let someVal = someIntSet.remove(5) {
    print(someVal)
    print(someIntSet)
} else {
    print("cannot find element to remove")
}

輸出:

5
[6, 2, 3, 1, 4]

在Swift中向集合中添加新元素

insert()方法用于在Swift中向集合中添加新元素。愛掏網 - it200.com

添加單個元素

示例

var someIntSet:Set = [1, 2, 3, 4, 5, 6]
someIntSet.insert(7)
print(someIntSet)

輸出:

[2, 4, 5, 6, 7, 3, 1]

在上面的示例中,我們向預定義集合中添加了一個新元素7。愛掏網 - it200.com 要添加多個元素

示例

var someIntSet:Set = [1, 2, 3, 4, 5, 6]
someIntSet.insert(7)
someIntSet.insert(8)
someIntSet.insert(9)
someIntSet.insert(10)
print(someIntSet)

輸出:

[10, 2, 4, 9, 5, 6, 7, 3, 1, 8]

在Swift中的集合操作

使用集合的另一個優點是它方便您執行集合操作,即并集、交集等。愛掏網 - it200.com它與數學中的集合運算相同。愛掏網 - it200.com

并集集合操作

兩個集合 ab 的并集是所有元素都組合在 a集合b集合 中的集合。愛掏網 - it200.com可以通過使用 a.union(b) 來訪問它。愛掏網 - it200.com

示例

let a: Set = [1, 3, 5, 7, 9]
let b: Set = [0, 2, 4, 6, 8]
print(a.union(b))

輸出:

[8, 2, 9, 4, 5, 7, 6, 3, 1, 0]

交集運算

兩個集合 ab 的交集是兩個集合中都出現的元素組成的集合。愛掏網 - it200.com可以通過使用 a.intersection(b) 來訪問交集。愛掏網 - it200.com

示例

let a: Set = [1, 3, 5, 7, 9]
let b: Set = [0, 3, 4, 7, 8]
print(a.intersection(b))

輸出:

[7, 3]

減法集合運算

兩個集合的減法 ab 是一個集合,該集合包含了所有屬于a,但不屬于b的元素。愛掏網 - it200.com通過使用 a.subtracting(b) 可以訪問。愛掏網 - it200.com

示例

let a: Set = [1, 3, 5, 7, 9]
let b: Set = [0, 3, 4, 7, 8]
print(a.subtracting(b))

輸出:

[5, 9, 1]

對稱差集操作

兩個集合 ab 的對稱差是一個包含在任一集合中但不在兩個集合中都有的元素的集合。愛掏網 - it200.com可以通過使用 a.symmetricDifference(b) 來訪問。愛掏網 - it200.com

示例

let a: Set = [1, 3, 5, 7, 9]
let b: Set = [1, 3, 7, 6, 8]
print(a.symmetricDifference(b))

輸出:

[5, 6, 9, 8]

一些內置的函數和屬性

索引 內置的集合函數 說明
1. isEmpty isEmpty屬性用于確定集合是否為空。愛掏網 - it200.com如果集合為空,則返回true;否則返回false。愛掏網 - it200.com
2. first first屬性用于訪問集合的第一個元素。愛掏網 - it200.com
3. insert insert函數用于在集合中插入/添加元素。愛掏網 - it200.com
4. reversed 該函數以反向順序返回集合的元素。愛掏網 - it200.com
5. count 該屬性返回集合中的元素總數。愛掏網 - it200.com
6. removeFirst 該函數從集合中移除并返回第一個值。愛掏網 - it200.com

聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
發表評論
更多 網友評論0 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 久久亚洲精品无码VA大香大香| 处女的诱惑在线观看| 国产在线视频专区| 二代妖精在线观看免费观看| porn在线精品视频| 中文字幕精品一区| 裸のアゲハいきり立つ欲望电影| 狠狠色欧美亚洲狠狠色www| 日本福利一区二区| 国产精品亚洲专区无码不卡| 内射老妇BBWX0C0CK| 久久狠狠高潮亚洲精品| 尤物视频在线看| 欧乱色国产精品兔费视频| 少妇挑战三个黑人惨叫4p国语| 国产成人精品无码片区在线观看| 嘟嘟嘟www在线观看免费高清| 亚洲av永久无码精品水牛影视| japonensisjava野外vt| 精品亚洲欧美无人区乱码| 成人年无码av片在线观看| 国产精品香蕉成人网在线观看| 国产乱子伦视频大全| 久久99精品久久水蜜桃| 麻豆国产精品va在线观看不卡| 欧美国产第一页| 国模无码一区二区三区不卡| 伊人久久大香线蕉亚洲五月天| 一本大道香蕉在线影院| 老师你的兔子好软水好多作文高清 | 亚洲av无码电影网| 黄色毛片在线观看| 成在人线av无码免费高潮水| 免费国产a理论片| 5x社区精品视频在线播放18| 最新中文字幕电影免费观看| 国产毛片在线看| 久久99国产综合精品| 男人肌肌插女人肌肌| 国产精品夜色一区二区三区| 亚洲国产美女福利直播秀一区二区|