我想基于对象生成UUID。相等的对象需要具有相同的UUID。
我了解到类型3 UUID的值是基于名称和命名空间的。java.util.UUID有一个nameUUIDFromBytes方法,它以字节数组作为参数。
所以我想将我的对象序列化成字节数组,并将其提供给nameUUIDFromBytes方法。
但是,我对UUID的命名空间方面感到困惑。这是否意味着在另一台机器上生成UUID时,UUID会不同?
生成UUID的最佳方法是什么,以使得当obj1.equals(obj2)== true时,即使uuid1在另一台机器上生成,uuid1.equals(uuid2)== true?
编辑:对于那些将此投票为如何实现hashCode的重复问题的人,请重新打开此问题。我在问UUID,而不是hashCode。除非您认为生成UUID的最佳方法是使用hashCode。如果是这样,请编写答案,说明为什么这是最佳方法,而不是用几乎与之无关的方式关闭此问题。
我了解到类型3 UUID的值是基于名称和命名空间的。java.util.UUID有一个nameUUIDFromBytes方法,它以字节数组作为参数。
所以我想将我的对象序列化成字节数组,并将其提供给nameUUIDFromBytes方法。
但是,我对UUID的命名空间方面感到困惑。这是否意味着在另一台机器上生成UUID时,UUID会不同?
生成UUID的最佳方法是什么,以使得当obj1.equals(obj2)== true时,即使uuid1在另一台机器上生成,uuid1.equals(uuid2)== true?
编辑:对于那些将此投票为如何实现hashCode的重复问题的人,请重新打开此问题。我在问UUID,而不是hashCode。除非您认为生成UUID的最佳方法是使用hashCode。如果是这样,请编写答案,说明为什么这是最佳方法,而不是用几乎与之无关的方式关闭此问题。