Ir ao conteúdo
  • Cadastre-se

Java Como concatenar valores aleatórios


Ornin

Posts recomendados

Primeiramente Bom Dia!. Minha dúvida se remete ao código abaixo, no qual consiste em um programa que pega valores de 0 a 24 e os armazena em um ArrayList

Logo após, esses valores são embaralhados no método Collections.shuffle(), para que não haja valores repetidos.

Por fim e necessário que o programa faça o print de por exemplo 10 dos 18 valores escolhidos do 25 que aviam, só que no programa abaixo só esta sendo printado

o valor de um dos números aleatórios, gostaria de saber como devo proceder para que eu consiga print 10 dos 18 números sem que haja a repetição dos mesmos.

Agradeço desde já, segui-se abaixo o código do programa que mencionei acima.

 

    List<Integer> numeros = new ArrayList<Integer>();
        for (int i = 1; i < 25; i++) { 
            //pega um numero
            numeros.add(i);
        }
        //Embaralhamos os números:
        Collections.shuffle(numeros);
        //Mostramos 18 aleatórios
        for (int i = 0; i < 18; i++) {
            //exibe um dos numeros escolhidos
        //O QUE EU QUERO É QUE NESSA LINHA DE CODIGO SEJA POSSIVEL EXIBIR MAIS DE UM VALOR SEM QUE SE REPITA O MESMO.
           System.out.println(numeros.get(i));
        }

Link para o comentário
Compartilhar em outros sites

Talvez assim o seu código tenha mais sentido:

 

List<Integer> numeros = new ArrayList<Integer>();
List<Integer> numeros2 = new ArrayList<Integer>(); //números que já foram 'printados'

for (int i = 1; i < 25; i++) {
	// pega um numero
	// numeros.add(i);
	numeros.add(new Random().nextInt(10)); //números aleatórios 0-9
}
// Embaralhamos os números:
Collections.shuffle(numeros);
// Mostramos 18 aleatórios
for (int i = 0; i < 18; i++) {
	// exibe um dos numeros escolhidos
	// O QUE EU QUERO É QUE NESSA LINHA DE CODIGO SEJA POSSIVEL EXIBIR
	// MAIS DE UM VALOR SEM QUE SE REPITA O MESMO.
	if (!numeros2.contains(numeros.get(i))) { //Se esse número não foi exibido ainda
			System.out.println(numeros.get(i)); //exibe
			numeros2.add(numeros.get(i)); //adiciona na lista de 'exibidos'
	}
}

de 1 - 24 como você colocou antes não se repetiam os números, então eu coloquei o Random de 0-9. Criando uma Lista para armazenar os números que já foram exibidos. Eu faço uma comparação para saber se o número atual já foi exibido, se não foi exibido eu 'printo' ele, caso contrário nada acontece.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...