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分钟运行一次。

最佳答案

我没有理由想到在合并之前先对列表进行洗牌。随机化/混洗某事两次不会使它们再随机化。


  这是对列表的适当随机改组吗


是的,但是您做得太多。

10-08 02:20