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

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

以上過程如下圖所示。

主站蜘蛛池模板: 雷州市| 天长市| 秦皇岛市| 桐乡市| 同德县| 松江区| 赤壁市| 府谷县| 彩票| 项城市| 临泽县| 石柱| 武安市| 绍兴县| 临沭县| 唐河县| 鲁山县| 宜州市| 衡山县| 汨罗市| 辉南县| 锦屏县| 无棣县| 额敏县| 屯门区| 嵩明县| 南靖县| 青浦区| 桐梓县| 田阳县| 颍上县| 田阳县| 马公市| 岑溪市| 泰兴市| 娱乐| 鸡泽县| 屏南县| 嘉禾县| 肃北| 大余县|