Programação  
 
Conhecimento computador >> Programação >> Programação em Java >> 
Como gerar números aleatórios sem repetição em Java
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.

Anterior :

Próximo : No
  Os artigos relacionados
·Como fazer um chat sem a necessidade de Java 
·Sun /Java & Erro 1722 
·WPS e heap JVM Tamanhos 
·Limitações thread em Java 
·Como exibir números em ordem ascendente Usando Java 
·Como passo através de um aplicativo Grails usando o Ne…
·Não consigo imprimir linhas usando um Applet Java 
·Como o Hibernate Usando Scroll em Java 
·Como usar o Java para fazer Botões Rollover 
·Como declarar um construtor em Java 
  Artigos em destaque
·Como inserir elementos de uma List View em uma matriz 
·Como abrir um documento do MS Word em Classic ASP 
·Qual é a diferença entre jogar uma exceção e captur…
·Como ocultar o Dojo Nó de árvore 
·Técnicas de depuração Java 
·Adicionando um DLL a um projeto CPP 
·Como criar uma URL Baseado em WSDL 
·Definição da função C + + Cordas 
·Como usar linguagem C para calcular juros compostos 
·Como instalar o Tortoise CVS 
Cop e direita © Conhecimento computador https://ptcomputador.com Todos os Direitos Reservados