Comparar 2 vetores em estrutura de dados

[code]como exibir deste vetor somente os numeros nao repetidos exibindo 6 e 4, obrigado.

public static boolean s(int vetor[], int valor){
for(int i : vetor){
if(i == valor)
return true;
}
return false;

}
        
public static void main(String[] args) {
    // TODO code application logic here
    
    int [] vetA = new int[3];
    int [] vetB = new int[3];
    int [] vetC = new int[6];
    
    vetA[0] = 5;
    vetA[1] = 6;
    vetA[2] = 7;
    
    vetB[0] = 5;
    vetB[1] = 4;
    vetB[2] = 7;
    
    int aux;

    
    for(int i=0; i<vetA.length; i++){
        for(int j=0; j<vetB.length; j++){
            if(vetA != vetB){
                vetC[i] = vetA[i];  
            } 
        }
    }
            
    for(int i : vetC){
    System.out.print(i);
    }[/code]

por favor use as tags [ code][ /code] quando for postar código, fica muito mais legível.

Quando você faz isso: if(vetA != vetB) Você está comparando a variável de referência ao vetor, e não o valor contido no índice do vetor, que é o que você quer comparar.

Arrume isso e analise seu código novamente, ele ainda não estará correto, veja se você encontra o problema.

quero mostrar somente os valores nao repetidos dos 2 vetores

Amigo, por favor, não crie tópicos duplicados, você nem respondeu o post dos colegas nos outros dois tópicos iguais a esse.


Eu entendi o que você quer, e a minha sugestão foi coerente.

O seu algoritmo está comparando os vetores de maneira incorreta, levando em consideração o resultado que você quer.

Eu te ajudo a chegar no resultado que você quer se você colaborar e trabalhar também, porém não vou te dar o código pronto.

claro esta certo, a outra pessoa me ajudou mas com metodos prontos, quero aprender na unha

É isso que eu quero te ajudar a fazer.

Fez a alteração que eu sugeri? Corrigiu a comparação dos arrays?

vê se esta certo o que entendi ali eu estou comparando dois vetores mas não seus indices e estou fazendo um terceiro vetor receber o valor diferente do vetor B, mas como comparo pelo seus indices

Da mesma maneira que faz para acessar o índice: if(vetA[i] != vetB[i] Perceba também que isso só é valido porque você está usando tipos primitivos, caso estivesse comparando objetos, a história seria diferente. Mas não se preocupe com isso agora, corrija o código e veja se encontra o outro problema.

Faça um teste de mesa.

if(vetA[i] != vetB[i]){ vetC[i] = vetA[i]; }

certo, estou comparando os indices estou fazendo o c receber a ele esta recebendo somente 6 ate aqui esta correto

Na verdade como você usa 2 índices, o if fica diferente:if(vetA[i] != vetB[j])

[code] if(vetA[i] != vetB[i]){
vetC[i] = vetB[i];

            }[/code]

[code] if(vetA[i] != vetB[i]){
vetC[i] = vetA[i];

            }[/code]

esta tudo correto agora ele esta somente mostrando os valores nao repetidos quando eu faço C receber A ou B, mas agora como mostro no mesmo vetor.

o índice usado no vetB é o j, não o i.

então devo fazer o que agora, só add j ele mostra tudo do 1 vetor

Faça o teste de mesa, pegue papel e caneta e rode o seu código mentalmente, anote os valores a cada passo, valide cada iteração do laço, cada verificação e cada atribuição.

Fazendo isso com certeza você vai encontrar o problema.

devo criar uma variavel auxiliar pq eu acho q AUX deve receber A e depois receber mas onde farei para que ele n pegue os valores repeditos

o problema meu amigo, de voce “se enrolar” no j ou i… é o seguinte.

Quando voce conta duas coisas diferentes, voce usa duas variaveis diferentes… então voce não pode utilizar como se fossem a mesma contagem depois. Entendeu?

digamos que voce tenha que contar. 5 vezes de 1 a 100.

para contar de 1 a 100 voce pode usar o i.

depois para contar 5 vezes esse algoritmo de contagem de 1 a 100 voce usa o j.

mas o problemas esta agora na verificacao de comparar e só pegar os nao repetidos

então… é uma dica isso. Pense… oque é diferente voce não pode juntar achando que vai continuar funcionando normalmente…

pq nao ve a apostila da caelum de estrutura de dados?