Ajuda!gerando numeros aleatorios e diferentes armazenando

1 resposta
_

tipo, fiz um metodo pra gerar numeros aleatorios e armazenar num arraylist, mas nao pode existir numeros iguais no array… sao gerados 10 numeros e armazenados… axo q fiz a logica certinha, mas mesmo assim ele continua gerando numeros iguais e colocando num arraylist… olhem o codigo:

public void iniciaLoteria(){

numerosInt = new ArrayList();

rp = new RandomProva();  /* randomProva eh uma classe onde tem um metodo que retorna um numero aleatorio num intervalo x,y */

acertos = 0;

for (int i = 0; i < 10; i++){

achou = false;

Integer num = new Integer(rp.nextInt(10,100));

Iterator it = numerosInt.iterator();

while ((it.hasNext()) && (numerosInt.size() != 0)){

if (num == (Integer) it.next()){

achou = true;

}

}

if (achou == false){

numerosInt.add(num);

}else{

i = i - 1;

}

}

}

ta certo a logica? tem algum erro??
lembrando, quero armazenar 10 numeros aleatorios num arraylist, onde nao pode haver numeros repetidos…
ajuda ae!

1 Resposta

H

Tente este código:

Vector v = new Vector();
while(v.size < 10)
{
  Integer n = new Integer(rp);
  if(!v.contains(n))
    v.add(n);
}
Criado 17 de setembro de 2004
Ultima resposta 17 de set. de 2004
Respostas 1
Participantes 2