以随机顺序从集合中获取所有元素

时间:2015-11-13 20:50:08

标签: java set shuffle

我需要以随机顺序从集合中获取所有元素。我找到了一些解决方案,但是我想找到最好的和最快的。 Collections.shuffle有什么类似的吗?

1 个答案:

答案 0 :(得分:4)

这不是一个直接的模拟,因为集合上没有顺序,所以改组没有集合的语义。如果你想多次使用不同的顺序获取元素,你需要将Set转换为一个列表(你知道它没有重复,因为它只来自一个Set)并将其随机化。

List<Elem> withAnOrdering = new ArrayList<>(fromMySetOfElem);
for (int i = 0; i < numTimes; i++)
{
     Collections.shuffle(withAnOrdering);
     //Do something with the ordering

}