集合和映射
生活中有哪些東西具有唯一性呢?例如全世界找不到第二個你 XD,我們的常常使用的身分證與車牌號碼,也都具有唯一性的,所以可以快速辨別身分
你有使用網路字典的習慣嗎?當我們輸入某個字詞,按下搜尋之後,網頁就會顯示相關的說明文字,字典內含有大量的資料,如何快速找到字詞的相關解釋,關鍵字就十分重要
或是像 office word 中的目錄功能或一般閱讀書籍的目錄,也可以讓我們快速查找相關內容以及對應的頁碼
集合 Collection
會儲存多筆資料,像是陣列 (Array)、串列 (List) 與 HashSet 都是集合的一種,今天會特別介紹一下 HashSet
集合的特性
- 排序性:會自動將資料由小至大排序 (例如:SortedSet)
- 順序性:資料會以某種順序儲存資料 (例如:List)
- 重覆性:資料是否允許重覆 (例如:List 允許重覆,HashSet 不允許重覆)
- 鍵值:可使用鍵值來存取資料,每個集合中的元素都有自己的鍵值,鍵值具唯一性
HashSet
- 無排序
- 無順序
- 資料
不可重覆,可以含有空元素 - 無鍵值 數字 | 除以 5 取餘數 | | -- | -------- | | 0 | 0 | | 1 | 1 | | 2 | 2 | | 3 | 3 | | 4 | 4 | | 5 | 0 | | 6 | 1 | | 7 | 2 | | 8 | 3 | | 9 | 4 | | 10 | 0
實際應用
資料不可重覆的特性可以用在比對不同資料之間的交集與聯集
映射 Map / 字典 Dictionary
Map 可以讓我們使用鍵快速的找到對應的內容,也就是我們常稱的鍵值對(key-value pairs),是索引鍵和內容的集合,常用 Map < K, V > 表示
特性
- 鍵值不能重覆,每個鍵值只能對應一個內容
- 內容可以重覆,不同鍵值,可存放別的鍵值存放過的內容
- 可各別操作鍵值或內容
今日小結
映射是使用率很高的一種資料結構,由其可透過鍵值搜尋資料的方式真的很方便,一定要記得它 XD