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分钟运行一次。 最佳答案
我没有理由想到在合并之前先对列表进行洗牌。随机化/混洗某事两次不会使它们再随机化。
这是对列表的适当随机改组吗
是的,但是您做得太多。