Duvida sobre vetores , comparação entre vetores

[code]import javax.swing.JOptionPane;

public class compararvetor {

public static void main(String[] args) {
	int vetoree[] = new int [5];
	
	for (int i=0;i<5;i++){
		String aux0 = JOptionPane.showInputDialog("Insira o Código do produto");             
        vetoree[i]= Integer.parseInt(aux0);  
	}
	for (int i=0;i<5;i++){
		System.out.println ("O codigo do produto "+i+" é : "+vetoree[i]);
	}

}

}
[/code]

Preciso de ajuda para implementar um codigo que compare o codigo digitado com os ja digitados anteriores , e se for igual o programa avise ao usuario.

Ex: o cara digitou os seguintes codigos (1,2,3) ai na hora de digitar o quarto codigo ele pegue esse ultimo codigo digitado e compare com os antes digitados.

GRATO !

Por exemplo:

String aux0 = "";
int flag = 0;

while(flag!=1){
flag = 1; //Flag recebe 1
aux0 = JOptionPane.showInputDialog("Insira o Código do produto");  //Usuário digita o valor
for(int x = 0; x<vetoree.size(); x++){
     if(Integer.parseInt(aux0) == vetoree[x]) flag = 0; //Se, em qualquer um das posições do vetor houver um valor semelhante,     
                                                                              // flag=0, e então volta ao inicio
}

}

[code]import javax.swing.JOptionPane;

public class olokobitcho {

public static void main(String[] args) {
	int vetoree[] = new int [5];
	
	for (int i=0;i<5;i++){
	    String aux0 = "";  
	    int flag = 0;  
	      
	    while(flag!=1){  
	    flag = 1;                                                          //Flag recebe 1  
	    aux0 = JOptionPane.showInputDialog("Insira o Código do produto");  //Usuário digita o valor  
	    for(int x = 0; x<vetoree.length; x++){  
	         if(Integer.parseInt(aux0) == vetoree[x]) flag = 0;            //Se, em qualquer um das posições do vetor houver um valor semelhante,       
	                                                                       // flag=0, e então volta ao inicio  
	    }}}
	for (int i=0;i<10;i++){
		System.out.println ("O codigo do produto "+i+" é : "+vetoree[i]);
	}}}

[/code]

ficaria assim ?
nao deu

Tente:

public static void main(String[] args) { Integer[] inteiros = new Integer[] {10, 5, 8, 7}; List<Integer> list = Arrays.asList(inteiros); if(list.contains(10)) { System.out.println("Número já existente"); } else { System.out.println("Número não cadastrado."); } }

[quote=nel]Tente:

public static void main(String[] args) { Integer[] inteiros = new Integer[] {10, 5, 8, 7}; List<Integer> list = Arrays.asList(inteiros); if(list.contains(10)) { System.out.println("Número já existente"); } else { System.out.println("Número não cadastrado."); } }[/quote]

:thumbdown:

Sei que não é exatamente o que você quer (você quer resolver o seu problema com arrays), mas vou te dar uma dica:

O máximo que puder, use uma Collection no lugar de um array, existem várias classes de Collection, uma para cada situação…

No seu caso, use uma ArrayList!

Ex.:

ArrayList&lt;String&gt; lista = new ArrayList&lt;String&gt;(); // Criei uma lista de Strings
lista.add("9876"); // Adicionei uma string à minha lista
lista.get(i); // Obtenho o valor dentro de um for como um array normal

// Esse é um for turbinado, que lista todas as Strings da minha lista for(String codigo : lista) { System.out.println(codigo); }

// o método contains testa se um certo valor existe dentro da lista if(lista.contains("9876") { System.out.println("A lista contém o código 9876"); }

Pode ser uma lista de int (ArrayList<Integer>), double (ArrayList<Double>) e qualquer outra classe (ArrayList<Aluno>).

Collections, como o ArrayList que dei o exemplo é bem mais prático que um array normal, menos gambiarra, o código fica mais limpo e mais profissional…além de ser ilimitado, não precisa definir um valor máximo pra sua lista…

Existem várias outras classes de Collection, ex:
LinkedHashSet // Lista sem duplicatas
TreeSet // Lista ordenada
HashMap // Lista de pares de valores (chave, valor)

Dá uma estudada nisso, vale a pena!

[quote=fuzybr][quote=nel]Tente:

public static void main(String[] args) { Integer[] inteiros = new Integer[] {10, 5, 8, 7}; List<Integer> list = Arrays.asList(inteiros); if(list.contains(10)) { System.out.println("Número já existente"); } else { System.out.println("Número não cadastrado."); } }[/quote]

:thumbdown: [/quote]

Você viu que são objetos Integer e não tipos primitivos, certo?
E outra, esse código funciona perfeitamente, teste aqui e não houve erro.
O que rolou ai?

Poste seu código completo com essa alteração.

[quote=nel][quote=fuzybr][quote=nel]Tente:

public static void main(String[] args) { Integer[] inteiros = new Integer[] {10, 5, 8, 7}; List<Integer> list = Arrays.asList(inteiros); if(list.contains(10)) { System.out.println("Número já existente"); } else { System.out.println("Número não cadastrado."); } }[/quote]

:thumbdown: [/quote]

Você viu que são objetos Integer e não tipos primitivos, certo?
E outra, esse código funciona perfeitamente, teste aqui e não houve erro.
O que rolou ai?

Poste seu código completo com essa alteração.[/quote]

[code] import javax.swing.JOptionPane;

public class compararvetor {  
  
    public static void main(String[] args) {  
        int vetoree[] = new int [5];  
          
        for (int i=0;i<5;i++){  
            String aux0 = JOptionPane.showInputDialog("Insira o Código do produto");               
            vetoree[i]= Integer.parseInt(aux0);    
        }  
        for (int i=0;i<5;i++){  
            System.out.println ("O codigo do produto "+i+" é : "+vetoree[i]);  
        }  
  
    }  
  
}  [/code]

preciso implementar isso que vc disse aqui … apenas isso ;]

Não fui tão objetivo, mas ficou resolvido só com array.
Use um wrapper Integer que aceite null.

public static void main(String[] args) {    
	Integer[] integerArray = new int [5];    
		
	for (int i=0;i<5;i++){    
		String aux0 = JOptionPane.showInputDialog("Insira o Código do produto");
		Integer existant = Exists(integerArray, Integer.parseInt(aux0));
		if (existant != null)
		{
			System.out.println ("O codigo do produto  é : "+existant);  
		}
		else
			vetoree[i]= Integer.parseInt(aux0);      
	}        
}

public static Integer Exists(Integer[] vectorArray, vectorValue){
	for(int i=0; i<5; i++){
		if (vectorArray[i] == vectorValue)
			return vectorValue[i];
	}
	return null;
}

Era só pensar um pouco…

[code]public static void main(String[] args) {
Integer vetoree[] = new Integer[5];
int n = 0;
while(n != vetoree.length) {
String aux0 = JOptionPane.showInputDialog(“Insira o Código do produto”);
if(containsValue(vetoree, Integer.parseInt(aux0))) {
JOptionPane.showMessageDialog(null, “Código já existente. Por favor, digite outro.”);
} else {
vetoree[n]= Integer.parseInt(aux0);
n++;
}
}

}

public static boolean containsValue(Integer[] vet, Integer value) {
	List<Integer> list = Arrays.asList(vet);
	return list.contains(value);
}[/code]

E fiz por cima, dá para melhorar ainda bastante isso ai.