我的对象具有以下属性:

class MyObject
{
    int sourceId();
    String id();
}


如果我使用id作为标识符,则可能会发生冲突,因为可能有记录具有相同的id但不同的sourceId

因此,我正在研究生成sourceIdid的哈希,并使用该哈希为每个记录生成唯一的ID。我当时只是在想md5ing String.valueOf(sourceId + id),但是md5冲突似乎并没有我想要的那么普遍。

为此,将推荐使用其他哪种算法,哪些算法会产生快速哈希,并且在哪里不太可能发生冲突?

最佳答案

如果id()字符串具有固定长度,则可以简单地将sourceId和Id连接起来:

public String getUniqueID ()
{
    return sourceID() + id();
}


如果id()没有固定长度,则可以用零填充(例如)以获得固定长度,然后像以前一样将其连接到sourceID()

关于java - 用于生成唯一ID的哈希算法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30367890/

10-08 23:33