Advertisement
uopspop

Untitled

Jan 16th, 2022
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1.  
  2. 這邊我們來介紹這兩個資料結構: 【Set & Map】
  3. 到這邊,我們也都清楚「樹」以及「Hash」的相關概念,也就很適合來講到這兩個資料結構了!
  4.  
  5.  
  6.  
  7. 什麼是 Set ?
  8.  
  9.  
  10.  
  11. Set 的主要概念就是裡面的元素都「不能重複」,而我們判斷能不能重複的方式主要有兩種:
  12.  
  13.  
  14.  
  15. 1. 如果是 HashSet 就是用 Hash Function 產出來的值來判斷是否重複
  16.  
  17. 2. 如果是 TreeSet 則是用 Value 本身是否重複
  18.  
  19.  
  20.  
  21. 什麼是 Map ?
  22.  
  23.  
  24.  
  25. Map的主要概念就是 key -> value ,由一個 key 去對照到一個 value,有一種「Mapping」的概念在。
  26.  
  27.  
  28.  
  29. Map = keys + values = Set (keys) + Values
  30.  
  31.  
  32.  
  33. 上述式子可以看出來,其實keys這部分也就是一個 Set,也因此 Map 的 keys也是「不能重複」,而判斷方式:
  34.  
  35.  
  36.  
  37. 1. 如果是 HashTable/HashMap 就是用 Hash Function 產出來的值來判斷是否重複 (同Set)
  38.  
  39. 2. 如果是 TreeMap 則是用 Value 本身是否重複 (同Set)
  40.  
  41.  
  42.  
  43. 什麼時候用 Set ? 又什麼時候用 Map?
  44.  
  45.  
  46.  
  47. 在老師的經驗中,其實統一都使用 Map 就好了,簡單明瞭;挺多就是 Values 放著別用,其實不用特別去使用 Set。
  48.  
  49. 甚至許多程式語言中,Set 的底層就是 Map,在效能上也沒有差別,所以也不大有必要去分這麼細。
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement