Numeros aleatorios sem repetição

E ai pessoal…blz???

Precisso fazer um gerador de numeros aleatorios e esses numeros nao podem repetir.

Pra gerar os numeros ta OK…agora alguem pode me dar uma ideia pra nao repetir os numeros?!

Segue o codigo:


int value;
        int vInicio= 1;
        int vFinal= 8;
        int qtdNum= 6;
        int num[]= new int[qtdNum]; 
        
             
        for (int cont= 0; cont < qtdNum; cont++) {            
                 
            value= vInicio + (int) ( Math.random() * vFinal );            
            num[cont]= value;              
            
        }  
        
        for (int j=0; j < num.length; j++) {
            System.out.println("Dezena "+ j+ " = "+ num[j]);

Obrigado

até +

Dá uma olhada na documentação da Sun sobre HashSet

Eu não entendi exatamente o que vc quer fazer, mas outra alternativa ao HashSet, caso vc só queira embaralhar uma seqüência de números, é encher o vetor com os números que vc quer e percorrer o vetor inteiro sorteando lugares para vc permutar. Ou seja, a cada iteração vc troca o i-ésimo elemento com um elemento sorteado.

Se quiser sortear os números da Sena, por exemplo (que vão de 01 a 60), crie um ArrayList de Integer que vai de 01 a 60, e use Collections.shuffle. (veja o javadoc de java.util.Collections).
Então pegue os 6 primeiros números desse ArrayList…

ué, vai armazenando os numeros e a cada novo, compara e ve se ja existe, se nao armazena de novo.

Pessoal valeu…

thingol vc tem algum exemplo disso??

valeu

import java.util.*;
import java.security.*;

class Sorteio {
    
    public static void main(String[] args) {
        int nAlternativas = Integer.parseInt (args[0]);
        int nApostas = Integer.parseInt (args[1]);
        int nCartoes = Integer.parseInt (args[2]);
        List<Integer> numeros = new ArrayList<Integer>();
        Random rand = new SecureRandom();
        //-- Gerando a lista dos números de 1 a 100, na ordem
        for (int i = 1; i <= nAlternativas; ++i) {
            numeros.add (new Integer (i));
        }
        //-- Embaralhando os números
        for (int j = 0; j < nCartoes; ++j) {
            Collections.shuffle (numeros, rand);
            Set<Integer> ordenados = new TreeSet<Integer>();
            for (int i = 0; i < nApostas; ++i) {
                ordenados.add (numeros.get(i));
            }
            for (Integer i: ordenados) {
                System.out.printf ("%02d ", i);
            }
            System.out.println ();
        }
    }
}