d我有一个关于 Collections.shuffle() 方法的小问题。
案子:
我有 2 个需要改组的列表,然后将它们合并/合并到一个列表中,然后改组新的完整列表。我在 Random 类中使用了 shuffle 方法 - 使用 system.nanoTime() 作为种子。
代码如下所示:
public List<PresentationArticle> shuffleUnionShuffleLists(List<PresentationArticle> list1, List<PresentationArticle> list2) {
shuffleList(list1);
shuffleList(list2);
List<PresentationArticle> resultList = //merge/union the two lists
shuffleList(resultList);
return resultList;
}
public void shuffleList(List<PresentationArticle> articleList) {
long seed = System.nanoTime();
Collections.shuffle(articleList, new Random(seed));
}
我的问题是:当这些方法在一个新的 Random 对象和一个新的(但几乎相同的)种子之后运行时,这是否是对列表进行适当的随机洗牌?
该方法shuffleUnionShuffleLists()
大约每 3 分钟运行一次。