推 SureWin:那我的確誤會了 thx 01/26 19:56
※ 引述《SureWin (surewin)》之銘言:
: 我也對Hashtable 這個類別一直有問題
: 既然有人提我就順便問一下吧
: 再做 Hashing 的時候本來就會 有 Collision的問題
: 但是Hashtable 類別並沒做甚麼碰撞解決機制
: 反而在put資料的時候 若碰撞 就會蓋掉原來的資料
: 而回傳 "被"蓋的資料 真的是好奇怪
: 就算 兩則不同的key值 也可能 hash 到同一個bucket阿
: 難道 資料就這樣被蓋掉 好恐怖喔 一直不敢用ㄟ
: ---- 但是java的書明明有講 會在後面用一個linkedlist 串起來
: 不過都沒有ㄟ 不知道各位大大 有甚麼解決妙方
你誤會了,
hashing 的 collision 指的是 key 的 hash code 相同,
(代表物件將存在 hash table 中的同一個欄位)
在這種情況,資料是會用 LinkedList 存起來的。
但如果是 key 完全相同,則物件會被後加入者取代。
(當然這種情況,key 的 hash code 也是相同的)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.78.239