官术网_书友最值得收藏!

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協議就可以確定元素的位置了,包括開始位置和結束位置,這樣就能夠確定哪些元素是已經訪問過的,從而避免多次訪問同一個元素,并且通過一個給定的位置直接找到對應位置的元素。

以上過程如下圖所示。

主站蜘蛛池模板: 大同县| 剑川县| 连山| 海淀区| 剑川县| 新郑市| 宁津县| 资阳市| 宝丰县| 平舆县| 永顺县| 周口市| 山东省| 米脂县| 墨竹工卡县| 海林市| 绥阳县| 莱芜市| 香河县| 兴仁县| 民勤县| 安泽县| 河池市| 大姚县| 元江| 甘肃省| 高密市| 阳高县| 高清| 太原市| 邹平县| 连云港市| 什邡市| 成安县| 泰来县| 弋阳县| 安徽省| 沂南县| 泉州市| 潜江市| 菏泽市|