1. 程式人生 > >Java: HashSet

Java: HashSet

  • 連結串列和陣列按照意願排列元素次序。當要檢視某個元素,但忘記位置就需要訪問所有元素查詢,這將消耗大量時間。
  • 散列表可以快速查詢所需要的物件,不關心元素順序時才應該使用。
  • 散列表用連結串列陣列實現,每個列表被稱為(bucket)。桶數為收集具有相同雜湊值的桶的個數。為每個物件計算雜湊碼後,放在第(雜湊碼/桶總數的餘數)個桶中。桶中有固定量的槽(slot),插入新物件但桶已佔滿的情況稱為雜湊衝突。這時需要檢視這個物件是否已存在。
  • 根據裝填因子(預設值0.75),表超過75%被填入需要再雜湊,建立桶更多的表。
  • 雜湊集迭代器依次訪問所有的桶
  • 更改元素時,雜湊碼會改變,元素在資料結構中位置也改變。