Мне нужно получить все элементы из набора в случайном порядке. Я нашел некоторые решения, однако мне хотелось бы найти лучшее и самое быстрое. Есть ли какой-либо аналог для Collections.shuffle?получить ВСЕ элементы из набора в случайном порядке
1
A
ответ
4
Существует не прямой аналог, потому что наборы не установлены, поэтому перетасовка не имеет семантики для набора. Если вы хотите получать элементы в разных порядках несколько раз, вам нужно преобразовать Set в список (который, как вы знаете, не имеет дубликатов, потому что он просто появился из набора) и перетасовывает его.
List<Elem> withAnOrdering = new ArrayList<>(fromMySetOfElem);
for (int i = 0; i < numTimes; i++)
{
Collections.shuffle(withAnOrdering);
//Do something with the ordering
}