1
我目前在觀看C# Collections視頻的中間,橫跨下面的代碼位是引起了我的興趣是:Math.Abs與鑄造兩次檢索絕對值
int hashKey = (int)((uint)hashCode % capacity);
這是從改變以前:
int hashKey = Math.Abs(hashCode % capacity);
第一個實現葉hashKey與的值,而第二個執行它留在,前者給予我預期的結果。
我手動添加字符串「Hello」到我的哈希表,所以我希望取回桶含有這個詞時,我打電話給我的功能如下:
LinkedString results = hash.GetAllAtHash("Hello".GetHashCode());
下面是完整的功能:
public LinkedString GetAllAtHash(int hashCode)
{
int hashKey = (int)((uint)hashCode % capacity);
//int hashKey = Math.Abs(hashCode % capacity);
return values[hashKey];
}
使用其中一種方式有什麼意義嗎?爲什麼他們都返回不同的值,如果我沒有看過視頻,我怎麼能在沒有編譯/運行時錯誤的情況下知道錯誤?
感謝
改變了你的標題,因爲乍一看,我認爲這個問題涉及到/從'double'數據類型。 – spender
我們需要的是可重複計算在桶之間公平分配。這個問題中缺少重要的部分......這個計算應該適用於存儲和檢索。 – spender