java for循环执行过快会导致System.currentTimeMillis()重复

d-m*_*man 3 java random for-loop unique

Java:我在使用System.currentTimeMillis()函数时遇到问题

我正在使用System.currentTimeMillis()在foor循环问题中生成唯一值,循环执行得太快,System.currentTimeMillis()给我重复值.

我如何生成确定的唯一值.

for(int a=0;a<=10;a++){
System.out.println(System.currentTimeMillis())
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过跟踪,但它也不是生成唯一数字的特征

System.currentTimeMillis()+Math.random()
Run Code Online (Sandbox Code Playgroud)

Liv*_*Liv 6

你为什么不System.nanoTime()改用?

  • 来自 JavaDoc:“不保证值更改的频率。” 您可以**轻松** 遇到一个不会比 `currentTimeMillis()` 更频繁更改的实现。 (2认同)

lei*_*ifg 6

为什么不使用UUID库生成唯一标识符(已经在JDK http://download.oracle.com/javase/6/docs/api/java/util/UUID.html中).

或者更简单的方法:附加一个静态计数器