Случайная коллекция Java - PullRequest
20 голосов
/ 09 июня 2009

Существует ли какая-нибудь коллекция Java, в которой порядок выборки является случайным? Например, я помещаю целое число 1, 2, 3 в коллекцию, и когда я пытаюсь распечатать их, все результаты могут быть «1 2 3», «3 2 1» или «1 3 2»?

Ответы [ 4 ]

46 голосов
/ 09 июня 2009

Если вам нужна случайная последовательность, вы можете использовать Collections.shuffle

    List<Integer> list = new LinkedList();
    //Add elements to list
    Collections.shuffle(list);
5 голосов
/ 09 июня 2009

Возьмите обычную коллекцию и перемешайте ее, затем выполните итерацию по ней обычным способом.

Вы можете использовать java.util.Collections.shuffle(List<T>) для перетасовки.

2 голосов
/ 09 июня 2009

Just shuffle Коллекция.

Если коллекция должна оставаться в таком порядке, чтобы вы могли получить доступ к элементам со случайными индексами, но тогда вам нужно отслеживать те, которые вы использовали ранее (возможно, это зависит от вашего приложения), и это может быть очень неэффективным. Лучшим решением, если память не является препятствием, было бы просто сделать копию и перемешать ее.

1 голос
/ 09 июня 2009

Не то, чтобы я знал. Вы всегда можете поместить значения в список и использовать Collections.shuffle, чтобы расположить значения в случайном порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...