根据每个用户可预测地随机化一个项目列表

时间:2013-11-08 05:03:56

标签: java random

我需要确保指定网页的每个用户以随机顺序返回对象列表。我需要确保如果重新加载页面,那些对象将保持相同的随机顺序。以下初始化随机数生成器的方法是否确保我总是在每个用户的基础上获得相同的随机数序列,而不是使用哪个JVM或JVM版本?

Random random = new Random();
random.setSeed(username.hashCode());

我们不需要真正的随机性,我们只需要确保每个用户都不会以相同的顺序看到“问题”。

1 个答案:

答案 0 :(得分:2)

来自Oracle Documentation

  

如果使用相同的种子创建了两个Random实例,并且为每个实例创建了相同的方法调用序列,则它们将生成并返回相同的数字序列。

因此,如果使用相同的种子(例如Random)初始化两个username.hashcode个对象,并且对这些对象进行相同的调用序列,则它们将始终返回相同的结果。