- 跟戴銘學iOS編程:理順核心知識點
- 戴銘
- 3字
- 2024-01-19 15:19:48
1.3 集合
1.3.1 基本概念
我們來了解一下集合的基本概念。首先集合是泛型的,比如:
let stateArray: Array<String> = ["工作","吃飯","玩游戲","睡覺"]
集合需要具備遍歷的功能,通過GeneratorType協議,可以不關注具體元素類型只要不斷地用迭代器調next就可以得到全部元素。但是使用迭代器無法進行多次遍歷,這時就需要使用Sequence協議來解決這個問題。像集合的forEach、elementsEqual、contains、minElement、maxElement、map、flatMap、filter、reduce等功能都是使用Sequence協議進行多次遍歷的。
因為Sequence協議無法確定集合里的位置,所以在Sequence的基礎上增加了Indexable協議,Sequence協議加上Indexable協議就是Collection協議。有了Collection協議就可以確定元素的位置了,包括開始位置和結束位置,這樣就能夠確定哪些元素是已經訪問過的,從而避免多次訪問同一個元素,并且通過一個給定的位置直接找到對應位置的元素。
以上過程如下圖所示。

推薦閱讀
- Apache Spark 2 for Beginners
- AngularJS深度剖析與最佳實踐
- Terraform:多云、混合云環境下實現基礎設施即代碼(第2版)
- Learning Concurrency in Kotlin
- RESTful Java Web Services(Second Edition)
- Python自然語言理解:自然語言理解系統開發與應用實戰
- Python期貨量化交易實戰
- 算法圖解
- Elasticsearch Blueprints
- Python應用開發技術
- 讀故事學編程:Python王國歷險記
- 趣學數據結構
- KnockoutJS Blueprints
- MATLAB計算機視覺實戰
- Java與Android移動應用開發:技術、方法與實踐