Erro:Collections.shuffle

quero um codigo mais ou menos assim:
import java.util.Collections;
class Main {
public static void main(String[] args) {
int[] lista = {1, 2, 3, 4};
Collections.shuffle(lista);
System.out.print(lista);

}
}

erro:
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
1 error

Por que não esta funcionando?

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

Deu certo, Obrigado