-1

Мне нужно случайным образом перемешать следующий String Array:

String[] cardsSet1 = {"Name1", "Name2", "Name3"};

Есть ли способ сделать это

1 ответ1

2
  1. Вы можете использовать встроенный (как размещено здесь):

    Collections.shuffle(Arrays.asList(cardsSet1));

  2. Или заново изобрести колесо:

Если вы хотите скопировать в новый массив (сохраняя оригинал без изменений):

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;
    }
}

... Я должен был заранее спросить "что ты пробовал"?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .