Get a Short from a UUID

  • 本文关键字:UUID from Short Get java
  • 更新时间 :
  • 英文 :


我的对象有一个类型为"id":UUID。然而,在我的程序中,我还需要每个对象的第二个ID,它用短裤显示。我更愿意从实际的ID 中推导/计算

由于short只由两个字节组成,很明显,我不能只键入强制转换,但可能有可能从UUID-ID中计算出或多或少唯一的short变量。

有人知道吗?

有一些选项和事情需要考虑。

UUID由128位组成。当你想用更小的版本(短=16位(表示它时,碰撞的风险总是更高!

我可以想出两种方法来缩短;表示";或连接到您的UUID:

  1. 直接映射到一个数字(我建议使用这个(

将UUID映射到一个短数字(范围从-32768到32767(。请记住,使用short的数量是有限的。只需增加数字并映射UUID和短ID即可。

示例:

123e4567-e89b-12d3-a456-426614174000 -> 1
e7511ef3-849e-4cee-b194-8f238ca88ce2 -> 2

如果您真的想要导出第二个ID,请考虑哈希:

  1. 哈希

Hashfunctions将数据映射到固定大小的值。因此,您可以使用哈希函数来减小大小。例如,Pearson散列是8位散列函数,或者Fletcher-16是16位散列函数。

此外,UUID有一个静态部分,也许您可以忽略它,自己查找映射函数。

最新更新