como devo fazer a verificacao na unicao de dois vetores mostrando somente elementos nao repetidos
União de vetores [RESOLVIDO]
11 Respostas
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] = 8;
int aux;
for(int i=0; i<vetA.length; i++){
for(int j=0; j<vetB.length; j++){
if(vetA[i] != vetB[j]){
vetC[i] = vetA[i];
}
}
}
for(int i : vetC){
System.out.print(i);
}
estou fazendo deste jeito
Oi,
E qual o problema deste seu método? Você queria saber se existe uma saída melhor?
Tchauzin!
entao qro que voce me ajude a verificar para nao mostar os elementos iguais dos dois vetores e mostrar em um terceiro
ALGUÉM PODERIA ME AJUDAR??
Precisa ser necessariamente um vetor? Se não, use um set. Ele não aceita valores iguais dentro dele.
Exemplo:
public static void main(String[] args) {
Set<Integer> set1 = new HashSet<>();
Set<Integer> set2 = new HashSet<>();
Set<Integer> set3 = new HashSet<>();
set1.add(50);
set1.add(40);
set1.add(30);
set1.add(20);
set1.add(10);
set1.add(80);
set2.add(50);
set2.add(70);
set2.add(90);
set2.add(10);
set2.add(55);
set2.add(45);
for (Integer a : set1) {
set3.add(a);
}
for (Integer a : set2) {
set3.add(a);
}
for (Integer a : set3) {
System.out.println(a);
}
}
Vai imprimir:
50
70
55
20
80
40
10
90
45
30
tem q ser em vetor estrutura de dados eu estou errando na verificação
você criou outro usuário pra quintuplicar seu tópico?
http://guj.com.br/java/280969-comparar-2-vetores-em-estrutura-de-dados
http://guj.com.br/java/281077-conjunto-uniao-em-vetores
você criou outro usuário pra quintuplicar seu tópico?Isso tá parecendo: “faça meu dever de casa. Está chegando a hora de entregar e estou atrasado”http://guj.com.br/java/280969-comparar-2-vetores-em-estrutura-de-dados
http://guj.com.br/java/281077-conjunto-uniao-em-vetores
Tente desenvolver sua própria lógica. Mesmo que não pareça a melhor das lógicas, é melhor desenvolver algo não muito “elegante”, mas que seja funcional, do que não desenvolver nada.
Lembre-se que depois de implementar um código funcional, ele pode sempre ser refinado reduzindo o número de laços e estruturas de decisões para melhorar a performance ou mesmo deixar o código mais legível e elegante.
Caso esteja com dificuldades em estrutura de dados, existem várias apostilas muito boas e gratuitas na internet.
Como essa da Caelum, por exemplo:
Se precisa de um código pronto para um trabalho da faculdade acho q veio no lugar errado.
Um problema básico desse pessoal é tentar resolver tudo dentro de uma única função, com um monte de fors, um dentro do outro.
Isso quer dizer que vai sempre dar alguma caca, porque sempre foi difícil fazer tudo de uma vez só.
Eu separaria o problema de “achar alguma coisa em um vetor” do problema de “incluir alguma coisa em um vetor”.
Um problema básico desse pessoal é tentar resolver tudo dentro de uma única função, com um monte de fors, um dentro do outro. Isso quer dizer que vai sempre dar alguma caca, porque sempre foi difícil fazer tudo de uma vez só.Eu separaria o problema de "achar alguma coisa em um vetor" do problema de "incluir alguma coisa em um vetor".
Oi,
Exatamente.
Um método dessa forma:
public
boolean ContemDigitoVetor(int[] an_vetor, int an_digito)
{
boolean lb_contem = false;
for (int i = 0; i < an_vetor.length && !lb_contem; i++) {
lb_contem = (an_vetor[i] == an_digito);
}
return (lb_contem);
}
Aplicando dessa forma:
int conta_vetor_c = 0;
for(int i=0; i<vetA.length; i++){
if (!ContemDigitoVetor(vetB, vetA[i])) {
vetC[conta_vetor_c] = vetA[i];
conta_vetor_c++;
}
}
for(int i=0; i<vetB.length; i++){
if (!ContemDigitoVetor(vetA, vetB[i])) {
vetC[conta_vetor_c] = vetB[i];
conta_vetor_c++;
}
}
Já teria um resultado quase satisfatório.
Tchauzin!