União de vetores [RESOLVIDO]

11 respostas
O

como devo fazer a verificacao na unicao de dois vetores mostrando somente elementos nao repetidos

11 Respostas

O
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

lina

Oi,

E qual o problema deste seu método? Você queria saber se existe uma saída melhor?

Tchauzin!

O

entao qro que voce me ajude a verificar para nao mostar os elementos iguais dos dois vetores e mostrar em um terceiro

O

ALGUÉM PODERIA ME AJUDAR??

S

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

O

tem q ser em vetor estrutura de dados eu estou errando na verificação

Rodrigo_Sasaki

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

Hebert_Coelho

digaoneves:
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

Isso tá parecendo: “faça meu dever de casa. Está chegando a hora de entregar e estou atrasado”

di.magdaleno

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.

E

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”.

lina
entanglement:
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!

Criado 28 de agosto de 2012
Ultima resposta 29 de ago. de 2012
Respostas 11
Participantes 7