什麼是根據其內容計算數組的哈希碼的合適方法?如何在scala中獲得正確的數組哈希碼?
Array.hashCode
對於數組實例:
val h = a.hashCode
println(h == Array(1,2).hashCode) // false
a(0) = 42
println(h == a.hashCode) // true
注意:最好能夠避免複製整個陣列,以例如列表,計算的hashCode
爲什麼我問之前:我在一個類中使用一個數組(因爲查詢時間很關鍵),並且它的內容與計算類的hashCode相關
它適用於Array [Int],但我不知道它如何處理其他(通用)項目類型。我想我們需要在更一般的情況下將對象轉換爲對象,或者使用其他一些Java函數(?)。最後,我更喜歡依靠scala API。但是我可能有些缺點,我不知道(效率?)。 –
WrappedArray可能有一點開銷:它需要一個簡單的類構造(包裝數組),並且每次查找都需要額外的函數調用。但就我的經驗來看,直接查找很難看出差異。我試過並沒有管理 –
我已提出拉取請求以確保這不再是一個問題,並已通過https://github.com/scala/scala/pull/5551。 –