У меня есть 1000 уникальных объектов в java.util.List
, каждый из которых ссылается на изображение, каждое изображение в списке 1000 уникально, и теперь Я хотел бы перетасовать их, чтобы я мог использовать первые 20 объектов и представить их пользователю веб-сайта.
Затем пользователь может щелкнуть кнопку с надписью «Перемешать», и я снова извлеку 1000 изображений с нуля и снова вызову shuffle()
.
Тем не менее, кажется, что из 1000 объектов изображения я очень часто вижу одно и то же изображение снова и снова между 20 выборками изображений.
Кажется, что-то не так, есть предложения получше, советы?
Мой код очень прост:
List imagePaths = get1000Images();
Collections.shuffle(imagePaths);
int i = 0;
for (String path: imagePaths) {
... do something with the path ...
i++;
if (i >= 20) break;
}
Я знаю, что Collections.shuffle()
хорошо распространяется:
см., например, http://blog.ryanrampersad.com/2012/03/03/more-on-shuffling-an-array-correctly/
Однако у меня просто такое ощущение, что вероятность увидеть одно и то же изображение снова и снова в наборе из 20 изображений из 1000 должно быть намного меньше...
Вклад приветствуется.