Imprimir um valor que seja diferente dos valores ja inseridos

3 respostas
helder_pestana

Ok, pessoal a minha duvida é a seguinte :

Tenho que inserir vinte numeros atraves de uma caixa de dialogo , mas preciso que estes numeros nao sejam repetidos , o problema é a medida que insiro estes valores eles devem ser comparados para que nao imprimam um numero repetido; tentei o seguinte codigo que nao deu resultado.

for(int y=0;y<20;y++)
{
 Strx=JOptionPane.InputDialogBox("Entre com o numero")
 n=Integer.parseInt(Strx);
 for(int x=0;x<20;x++)
 {
   if(V[x]==n)
    {
    System.out.println("numero repetido")
    break;
   }
    else
    {
      V[x]=n;
      flag=true;
      break;
    }
  }
  if(flag==true)
    System.out.println(n);
}

3 Respostas

caiofilipini

Você precisa usar um array pra armazenar os valores? Se não precisar, use um java.util.Set, que é uma coleção que não permite valores duplicados. Exemplo:

Set numeros = new HashSet();

for(int y=0;y<20;y++) {
    String strx=JOptionPane.showInputDialog("Entre com o numero");
    Integer numero = Integer.valueOf(strx);
    numeros.add(numero);
}

Mais informações (leia, vale a pena):
[url]http://java.sun.com/j2se/1.4.2/docs/api/java/util/Set.html[/url]

[]'s

helder_pestana

Preciso usar um Array.

Java_Vinicius_Machin
POw tava sem fazer nda e resolvi mastigar o problema pra vc...veja se o aplicativo a seguir ajuda:
import javax.swing.JOptionPane;

public class EvitaRepetidos {
    
	static public boolean validaNumero( int numero, int[] array )
	{
	   for ( int i = 0; i < array.length ; i++ ) {
	      if ( array[ i ] == numero )
	         return true;
	   }
	   return false;
	}
	
	public static void main(String[] args) {
	   int tamanhoArray = 
	   Integer.parseInt( JOptionPane.showInputDialog("Digite o tamanho do array:") );
	   int[] array = new int[ tamanhoArray ];
	   
	   for ( int i = 0; i < array.length; i++ ) {
	      int num = Integer.parseInt(JOptionPane.showInputDialog("Digite um número:"));
	      if ( !validaNumero( num, array )) {
	      	array[ i ] = num;
	      }
	      else {
	         JOptionPane.showMessageDialog(null, "Número Repetido, digite novamente");
	         i--;
	      }
	   }
	   
	   for ( int i = 0; i < array.length; i++ )
	      System.out.print( array[ i ] + " " );
	   
	   System.exit( 0 );
	   
	}
}
abraços... :D Ps: eh soh copiar colar e testar...
Criado 21 de fevereiro de 2005
Ultima resposta 21 de fev. de 2005
Respostas 3
Participantes 3