[英]Hashing algorithm to use for generating unique ids?
我的對象具有以下屬性:
class MyObject
{
int sourceId();
String id();
}
如果我使用id
作為標識符,則可能會發生沖突,因為可能有記錄具有相同的id
但不同的sourceId
因此,我正在sourceId
成sourceId
和id
的哈希,並使用該哈希為每個記錄生成唯一的id。 我當時只是想md5ing String.valueOf(sourceId + id)
,但是md5沖突似乎並沒有我想要的那么罕見。
為此會建議使用哪種其他算法,哪些算法會產生快速哈希,並且在哪里不太可能發生沖突?
如果id()
字符串具有固定長度,則可以簡單地將sourceId和Id連接起來:
public String getUniqueID ()
{
return sourceID() + id();
}
如果id()
沒有固定長度,則可以用零填充(例如)以獲得固定長度,然后像以前一樣將其連接到sourceID()
。
假設此值可以是String,則將兩個值都用連字符連接:
class MyObject
{
int sourceId;
String id;
String getUniqueKey() {
return sourceId+"-"+id;
}
}
然后,您可以使用value.split("-");
獲得原始值value.split("-");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.