Мне нужно случайным образом перемешать следующий String Array:
String[] cardsSet1 = {"Name1", "Name2", "Name3"};
Есть ли способ сделать это
Мне нужно случайным образом перемешать следующий String Array:
String[] cardsSet1 = {"Name1", "Name2", "Name3"};
Есть ли способ сделать это
Вы можете использовать встроенный (как размещено здесь):
Collections.shuffle(Arrays.asList(cardsSet1));
Или заново изобрести колесо:
Если вы хотите скопировать в новый массив (сохраняя оригинал без изменений):
public static String[] Randomize(String[] arr) {
String[] randomizedArray = new String[arr.length];
System.arraycopy(arr, 0, randomizedArray, 0, arr.length);
Random rgen = new Random();
for (int i = 0; i < randomizedArray.length; i++) {
int randPos = rgen.nextInt(randomizedArray.length);
String tmp = randomizedArray[i];
randomizedArray[i] = randomizedArray[randPos];
randomizedArray[randPos] = tmp;
}
return randomizedArray;
}
Или, если вы хотите сделать это на месте (очень похоже на выше):
public static void RandomizeInPlace(String[] arr) {
Random rgen = new Random();
for (int i = 0; i < arr.length; i++) {
int randPos = rgen.nextInt(arr.length);
String tmp = arr[i];
arr[i] = arr[randPos];
arr[randPos] = tmp;
}
}
... Я должен был заранее спросить "что ты пробовал"?