簡體   English   中英

是否可以使用 hashCode 作為內容唯一 ID?

[英]Is it possible to use hashCode as a content unique ID?

我需要比較兩個大字符串。 不是使用像這樣的 equals 方法,有沒有像 hashCode 這樣的方法或其他為 String 生成唯一 id 的方法? 那是因為我的 String 非常大。 另外,我需要不同的內容唯一 ID。 為了我的目的,可以在 String 中使用hashCode嗎?

hashCode的目的是提供一種快速方法來識別兩個對象比較不相等的大多數情況。 在大多數情況下,誤報率為 1% 的哈希函數被認為優於誤報率為 0% 的哈希函數,但需要兩倍的時間。

有一些被設計用於為“摘要”的散列函數,使得任意長度的兩個不同的字符串可能不具有相同的消化。 然而,為了非常有效,摘要需要比 32 位哈希碼值大得多。 一個精心設計的 64 字節(512 位)摘要通常足以保護任何長度的字符串,以至於一個人在同一個周末更有可能被閃電擊中兩次,因為一個人贏得五張州彩票而不是找到兩個產生相同摘要的不同字符串。 為一個字符串計算一個好的摘要函數的成本將比將該字符串與另一個字符串進行比較的成本要大得多,但是如果每個字符串都將與許多其他字符串進行比較,則每個摘要函數計算一次並將其與每個字符串的摘要進行比較其他字符串可能會提供主要的性能優勢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM