3 de junho de 2013

Android - Embaralhar números como forma de gerar números aleatórios não repetidos

Uma forma inteligente de gerar números aleatórios que não se repitam é criar o conjunto de dados em uma lista e depois utilizar a função shuffle para embaralhar os números.

Declaração de uma lista de inteiros:
 List<Integer> numeros = new ArrayList<Integer>();   
Inserir valores de 1 até 10 na lista e embaralhar:
 for (int i = 1; i <= 10; i++) numeros.add(i);  // Inserir valores na lista "numeros"
 Collections.shuffle(numeros); // Embaralhar os números da lista:  
Para retornar os valores embaralhados:
 Integer a = numeros.get(0); // Retorna o primeiro número aleatório não repetido da lista  
 Integer b = numeros.get(1); // Retorna o segundo número aleatório não repetido da lista