以随机顺序从集合中获取所有元素
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
}
我需要以随机顺序从集合中获取所有元素。我找到了一些解决方案,但我想找到最好和最快的。 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
}