Solucao aceita
confuso 1 like
O Collections.shuffle serve para embaralhar apenas Collections como por exemplo o ArrayList. Um array de int (int[] lista) não é uma collection.
List<Integer> lista = new ArrayList<>();
lista.add(1);
lista.add(2);
lista.add(3);
lista.add(4);
Collections.shuffle(lista);
System.out.print(lista);
Se você precisa embaralhar int[] precisa criar um próprio método seu usando Random:
public static void main(String[] args) {
int[] array = {1, 2, 3, 4};
embaralhar(array);
for (int elemento : array) {
System.out.print(elemento + " ");
}
}
static void embaralhar(int[] array) {
Random geradorNumeroAleatorio = ThreadLocalRandom.current();
for (int i = array.length - 1; i > 0; i--) {
int posicaoAleatoria = geradorNumeroAleatorio.nextInt(i + 1);
troca(array, i, posicaoAleatoria);
}
}
static void troca(int[] array, int posicaoA, int posicaoB) {
int temporario = array[posicaoA];
array[posicaoA] = array[posicaoB];
array[posicaoB] = temporario;
}
Pmiguel