生成随机长用户ID

时间:2013-02-06 11:54:41

标签: java random statistics long-integer stochastic

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

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

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

我有两个重复用户ID与10k,100k或100万用户的几率是多少?我怎么能算这个呢?

3 个答案:

答案 0 :(得分:6)

您可以使用下面提到的任何一种:

  1. 请使用以毫秒为单位的当前日期和时间,而不是使用随机获取较长的用户ID。

  2. 使用随机UUID

答案 1 :(得分:5)

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

136年后,您可能会在同一个实例上看到重复的ID,这对于中小型项目来说已经足够了。

示例:

long id = SUID.id().get();

答案 2 :(得分:1)

您可以使用randomUUID()

生成随机UUID

documentation