Sorteios são comuns em aplicações de jogos, competições ou até mesmo para criar testes em desenvolvimento. Vamos aprender a fazer um sorteio de números aleatórios sem repetição em Java. Este tutorial aprenda como gerar sorteio de números sem repetição em Java.

Passo 1: Importar bibliotecas necessárias

Primeiro, importe a classe Random e a estrutura Set, que vamos usar para manter o controle dos números sorteados.

import java.util.Random;
import java.util.Set;
import java.util.HashSet;

Passo 2: Configurar o sorteio sem repetição

Para criar uma lista de números aleatórios, defina a quantidade máxima de números e crie um conjunto (Set) que impedirá números duplicados.

public class SorteioSemRepeticao {
    public static void main(String[] args) {
        Random random = new Random();
        Set<Integer> numerosSorteados = new HashSet<>();

        int quantidadeNumeros = 10; // número de valores a serem sorteados
        int limiteMaximo = 50; // limite superior do intervalo de números

        while (numerosSorteados.size() < quantidadeNumeros) {
            int numero = random.nextInt(limiteMaximo) + 1; // gera número entre 1 e limiteMaximo
            numerosSorteados.add(numero);
        }

        System.out.println("Números sorteados: " + numerosSorteados);
    }
}

Explicação do código

  1. Random.nextInt(): Gera um número aleatório entre 0 e limiteMaximo - 1. Ao somar + 1, o intervalo é ajustado para 1 até limiteMaximo.

  2. HashSet: O Set não permite valores duplicados. Assim, caso um número já sorteado seja gerado novamente, ele será automaticamente ignorado.

  3. Loop While: A execução continua até que o conjunto (Set) contenha a quantidade de números desejada, evitando repetições.

Outro exemplo prático

import java.util.Random;
 import java.util.Set;
 import java.util.TreeSet;

 public class SorteioNumeros {
  public static void main(String[] args) {
      Random r = new Random();        
      Set<Integer> numeros = new TreeSet<Integer>();  
      
      //Sorteia 50 números de 0 até 100 sem repetição  
      while (numeros.size() < 50) {
          numeros.add(r.nextInt(101));  
      }       
      System.out.println("Números gerados: " + numeros);  
  }
}

Explicação:

Set: Interface que define uma coleção, ou conjunto, que não contém duplicatas de objetos. Isto é, são ignoradas as adições caso o objeto ou um objeto equivalente já exista na coleção;

TreeSet: Utiliza-se de uma árvore Binária para alinhar os elementos.

Com esse método, você consegue facilmente sortear números sem repetição, mantendo o desempenho e a simplicidade do código. É uma ótima abordagem para realizar sorteios em que a repetição não é permitida.

DOMINE O JAVA WEB ATRAVÉS DE AULAS PASSO A PASSO, DO BÁSICO AO AVANÇADO!

Domine as boas práticas com projetos práticos que vão te ajudar a desenvolver sistemas e se destacar no mercado de programação.

Clique na imagem abaixo e conheça mais detalhes do nosso curso:

CLIQUE AQUI E SAIBA MAIS

Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Tags:

Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?

Não enviamos spam. Seu e-mail está 100% seguro!

Sobre o Autor

Bene Silva Júnior
Bene Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *