Просто используйте Shuffle Fisher-Yates (алгоритм Knuth P):
private Random rand = new Random();
public static void shuffle(String[] array) { // mix-up the array
for (int i = array.length - 1; i > 0; --i) {
int j = rand.nextInt(i + 1);
String temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
См .:
- Knuth, D. 1969, 1998: Seminumerical Algorithms 1st & amp ; 3-е изд. Искусство серии компьютерного программирования, том 2, с. 125.
- Фишер, Рональд А .; Йейтс, Франк (1948) [1938]. Статистические таблицы для биологических, сельскохозяйственных и медицинских исследований (3-е изд.). Лондон: Oliver & amp; Бойд. стр. 26-27.
- http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
- https : //stackoverflow.com/a/1520212/636009
задан ChristophS 19 June 2018 в 16:58
поделиться