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

get ALL elements from set in random order

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

没有直接的类比,因为集合没有顺序,所以洗牌没有集合的语义。如果你想多次获取不同顺序的元素,你需要将 Set 转换为列表(你知道它没有重复,因为它只是来自一个 Set)并打乱它。

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

}