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
- Random.nextInt(): Gera um número aleatório entre
0
elimiteMaximo - 1
. Ao somar+ 1
, o intervalo é ajustado para1
atélimiteMaximo
. - HashSet: O
Set
não permite valores duplicados. Assim, caso um número já sorteado seja gerado novamente, ele será automaticamente ignorado. - 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 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:
Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits
Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?
Sobre o Autor
0 Comentários