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);
}
Comparar 2 vetores em estrutura de dados
20 Respostas
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])
if(vetA[i] != vetB[i]){
vetC[i] = vetB[i];
}
if(vetA[i] != vetB[i]){
vetC[i] = vetA[i];
}
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?
vou dar uma olhada