2

我正在编写一个 android 应用程序,通过这个公式为每个客户端提供一个长用户 ID:

long userID = (long) (Math.random() * 2 * Long.MAX_VALUE - Long.MAX_VALUE);

我是否正确利用了 MAX_VALUE,即利用了每一个可能的长期价值?

我有 10k、100k 或 1m 用户的两个重复用户 ID 的可能性有多大?我怎么能计算这个?

4

3 回答 3

7

您可以使用以下任何一种:

  1. 使用以毫秒表示的当前日期和时间,而不是使用随机获取长用户 ID。

  2. 使用随机 UUID

于 2013-02-06T11:58:02.797 回答
6

https://github.com/bigfatsea/SUID简单唯一标识符

您可能会期望 136 年后在同一实例上出现重复的 id,这对于中小型项目来说已经足够了。

例子:

long id = SUID.id().get();
于 2014-05-23T17:05:18.963 回答
0

您可以使用生成随机 UUIDrandomUUID()

文件

于 2013-02-06T11:56:45.403 回答