A linguagem Java fornece utilitários para a geração de números aleatórios dentro de seus programas. Se você deseja gerar uma série de números aleatórios, mas não quer qualquer um deles para ser repetido , você precisa usar os testes condicionais e loops. Ao adicionar cada número que você gerar para um objeto de coleção set, você pode dizer imediatamente se algum deles são duplicados . Se o número é duplicado , você pode instruir o Java para continuar gerando novos números até encontrar um que você ainda não tenha adicionado ao conjunto . O processo envolve duas voltas e uma instrução condicional . Instruções
1
Importe os utilitários Java necessárias para a sua geração de números aleatórios e definir objeto. Adicione o seguinte código no topo da sua declaração de classe : . Import java.util * ;
Criar um objeto de conjunto para armazenar os números que geram : TreeSet MyNumbers = new TreeSet ();
Crie uma instância da classe Random para gerar seus números aleatórios : Random RandGen = new Random ();
2
criar um loop para gerar os números aleatórios. A seguir, para o laço será executado 20 vezes : for (int i = 0; i < 20; i + +) { geração //Número aqui }
Dentro deste loop, você pode adicionar o processamento para gerar e verificar o seu aleatória números para duplicatas . Alterar o número 20 para refletir o número total de valores aleatórios que você quer que seu programa para gerar . Dentro do loop, gerar um número aleatório : int RandNum = randGen.nextInt ();
Este será executado cada vez que o loop itera
3
Adicione um segundo loop. para lidar com números duplicados . Adicione o seguinte código dentro de sua primeira volta após a linha de geração de números : for ( ; ;) {//lidar com duplicatas }
Este é um loop infinito , então ele irá executar sem parar até que o código quebra explícita de lo . Dentro deste loop, você pode instruir o Java para continuar gerando números aleatórios até que ele gera um que você ainda não tenha usado.
4
Adicione um teste condicional em cada número aleatório. Insira o seguinte código dentro do seu loop infinito : if ( myNumbers.add ( RandNum ) ) break; mais RandNum = randGen.nextInt ();
Quando você tenta adicionar um elemento a um conjunto , o método retorna true ou falsa. Se o elemento não estiver no set, ele retorna true , caso em que seu código pode sair do loop. Se o elemento já está no conjunto , o método retorna false , caso em que você pode instruir o Java para escolher outro número aleatório. O ciclo , então, executar novamente , testando o novo valor para ver se ele é uma duplicata. Este processo continua até que um novo valor é encontrado.
5
Teste seu código. Adicione a seguinte linha após o loop infinito , mas ainda dentro do loop externo : System.out.println ( RandNum );
Isso permitirá que você veja rapidamente que seus números são todos originais . Salve o arquivo , compilar seu programa e correr para testá-lo. Navegue através da saída para verificar se as funções estão funcionando.