Este é o método mais simples para gerar valores aleatórios exclusivos em um intervalo ou a partir de uma matriz .
Neste exemplo, estarei usando uma matriz predefinida, mas você pode adaptar esse método para gerar números aleatórios também. Primeiro, criaremos um array de amostra para recuperar nossos dados.
- Gere um número aleatório e adicione-o à nova matriz.
- Gere outro número aleatório e verifique se ele já está armazenado no novo array.
- Se não, adicione e continue
- caso contrário, reitere a etapa.
ArrayList<Integer> sampleList = new ArrayList<>();
sampleList.add(1);
sampleList.add(2);
sampleList.add(3);
sampleList.add(4);
sampleList.add(5);
sampleList.add(6);
sampleList.add(7);
sampleList.add(8);
Agora, a partir do sampleList
, iremos produzir cinco números aleatórios que são únicos.
int n;
randomList = new ArrayList<>();
for(int i=0;i<5;i++){
Random random = new Random();
n=random.nextInt(8);
if(!randomList.contains(sampleList.get(n)))
randomList.add(sampleList.get(n));
else
i--;
}
Isso é conceitualmente muito simples. Se o valor aleatório gerado já existir, reiteraremos a etapa. Isso continuará até que todos os valores gerados sejam exclusivos.
Se você achou esta resposta útil, você pode votar nela, pois é muito simples no conceito em comparação com as outras respostas .
1..100
(existem algoritmos famosos para isso), mas pare depois de determinar os primeirosn
elementos.