união de Array em um mesmo array existente?

Como posso comprar dois Arrays e pegar só os números que são iguais e colocar no primeiro Array?
Intenção abaixo:
Array1= {1,2,3,4,5,6,7}
Array2= {4,5,6,7,8,9,0,3,1,33,5}
Agora vem minha duvida!
Array1= {1,3,4,5,6,7}
Array2= {4,5,6,7,8,9,0,3,1,33,5}

[quote=brunokaue]Como posso comprar dois Arrays e pegar só os números que são iguais e colocar no primeiro Array?
Intenção abaixo:
Array1= {1,2,3,4,5,6,7}
Array2= {4,5,6,7,8,9,0,3,1,33,5}
Agora vem minha duvida!
Array1= {1,3,4,5,6,7}
Array2= {4,5,6,7,8,9,0,3,1,33,5}[/quote]

Tu quer algo do tipo ?

List<Integer> array1 = new ArrayList<Integer>();
// imagine ele populado com os valores citados por você

List<Integer> array2 = new ArrayList<Integer>();
// imagine ele populado com os valores citados por você

Iterator<Integer> it = array1.iterator();
while (it.hasNext()) {
    Integer value = it.next();
    // se o array2 não tem o valor do array1, remove do array1
    if (!array2.contains(value))
        it.remove();
}

Resolve ?

Sim, tem como fazer o mesmo só que ao contrário?
Digo, preencher o array1 somente com os valores que são diferentes do array2?
array1 = {1,2,3}
array2 = {1,2,4,5,6,7}

o array1 fica intacto, porém os números que aparecem no array2 que são diferentes são adicionados ao array1.
Acho que me expressei errado!

[quote=brunokaue]Sim, tem como fazer o mesmo só que ao contrário?
Digo, preencher o array1 somente com os valores que são diferentes do array2?
array1 = {1,2,3}
array2 = {1,2,4,5,6,7}

o array1 fica intacto, porém os números que aparecem no array2 que são diferentes são adicionados ao array1.
Acho que me expressei errado![/quote]

Qual seria o array resultante para isso ? Seria isso: array3 = {3}.
Afinal, somente o 3 não consta no array2. E Bruno, é só mudar um pouquinho a lógica que lhe passei…

Fazer um programa na linguagem Java que leia dois vetores a1 e a2, depois da leitura o programa deverá incluir em a1 os elementos de a2 que não são iguais aos elementos de a1.

Há como fazer isso em vetor? ou só usando ArrayList mesmo?

[quote=brunokaue]Fazer um programa na linguagem Java que leia dois vetores a1 e a2, depois da leitura o programa deverá incluir em a1 os elementos de a2 que não são iguais aos elementos de a1.

Há como fazer isso em vetor? ou só usando ArrayList mesmo?[/quote]
Claro que sim, dá pra fazer com vetor sim, mas é mais fácil com List. Ainda mais fácil com Set.

Mas como é um exercício pra você exercitar sua lógica e prática da linguagem, eu sugiro que faça com vetores mesmo

Eu jé tentei fazer, não consegui, por isso estou aqui, para alguém ajudar-me a sanar essa dificuldade assim como em outros 2 probleminhas!

É uma lista de exercícios então ? :smiley:
Posta o que tu já fez camarada, ai ajudamos na sua lógica.

Os exercícios que não fiz são esses:

> Fazer um programa na linguagem Java que leia dois vetores a1 e a2, depois da leitura o programa deverá incluir em a1 os elementos de a2 que não são iguais aos elementos de a1.

> Em teoria de sistemas, define-se como elemento MINIMAX de uma matriz, o menor elemento da linha que se encontra o maior elemento (o maior número contido na matriz) da matriz. Fazer um programa na linguagem Java para entrar com uma matriz quadrada de ordem n e dizer qual o MINIMAX. (Matriz)

> Desenvolva um algoritmo que contabilize a quantidade de vagas existentes em uma escola, e também a quantidade de alunos
matriculados. Para isso, o programa deverá realizar as seguintes atividades:
-Para cada turma, solicitar as seguintes informações: número da turma, capacidade máxima, quantidade de matriculados;
-A capacidade máxima que o programa deve considerar é de 100 turmas. Deverá ser possível indicar o término das turmas informando o valor 0 (zero) no código da turma.
-Ao final, o programa deverá imprimir uma relação de todas as turmas com sua capacidade máxima e sua capacidade ocupada. Além disso, deverá imprimir a quantidade total de vagas que a escola disponibiliza, bem como a quantidade total de alunos matriculados no momento.

O que já fez desse amigão aí ?

O que já fez desse amigão aí ?[/quote]

Bom eu já consegui comprar os números dos vetores, agora só falta a parte de remover e adicionar o vetor2 no vetor1.

[code]
int v1[] = {1, 2, 3, 4};
int v2[] = {1, 2, 3, 4, 5, 6, 7};

for (int i = 0; i < v1.length; i++) {
for (int j = 0; j < v2.length; j++) {
if (v1[i] == v2[j]) {
//aqui tem que ocorrer a remoção dos iguais .
} else {
//adicionar ao v1 o número que não é igual
}
}
}[/code]

Você ja está meio caminho andado, só umas observações:

1 - Quando eles são iguais, você não precisa fazer nada, pois o exercício não diz para remover nada do array2, então mude seu if para verificar quando for diferente.

2 - Quando encontrar o diferente, eis o que você tem que fazer:

  • Criar um novo array, com 1 de length a mais do que o array original
  • Passar todos os valores do array antigo para o novo array.
  • No índice que sobrou, adicionar o número diferente.

[quote=digaoneves]Você ja está meio caminho andado, só umas observações:

1 - Quando eles são iguais, você não precisa fazer nada, pois o exercício não diz para remover nada do array2, então mude seu if para verificar quando for diferente.

2 - Quando encontrar o diferente, eis o que você tem que fazer:

  • Criar um novo array, com 1 de length a mais do que o array original
  • Passar todos os valores do array antigo para o novo array.
  • No índice que sobrou, adicionar o número diferente.[/quote]

Na sala, verbalmente a professora disse para não usar um terceiro vetor!

bom… você pode instanciar o seu primeiro array com um tamanho maior então, o vetor auxiliar é simplesmente pra você conseguir “alterar” o tamanho do vetor, pois você não tem como aumentar o tamanho de um vetor que já está inicializado. Isso te deixa com 2 opções.

Ou você inicializa o vetor com um número maior (o que é ruim, pois você pode não saber o tamanho do segundo vetor, pode ser que tenha inicializado seu primeiro vetor com tamanho 20, mas aí tem que adicionar 100 números depois), ou você usa o vetor auxiliar sempre que precisar alterar o tamanho do seu primeiro vetor.

como que faço para passar os valores do v3 para o v1? ou simplesmente eu mostro v1 e logo v3?

Exemplo de como adicionar um novo elemento ao array:[code]public class Teste{

public static void main(String[] args){
	int[] nums = {1, 2, 3, 4};
	nums = addValueToArray(nums, 5);
	printValues(nums);
}

private static int[] addValueToArray(int[] nums, int num){
	int[] aux = new int[nums.length+1];
	for(int i=0 ; i<nums.length ; i++){
		aux[i] = nums[i];
	}
	aux[aux.length-1] = num;
	return aux;
}

private static void printValues(int[] nums){
	for(int i=0 ; i<nums.length ; i++){
		System.out.print(nums[i]+" ");
	}
}

}[/code] É isso que você queria?

Acho que sim, porem não consegui implementar com dois Arrays aqui =x

[code] public static void main(String[] args) {
int v1[] = {1, 2, 3, 4,35,36};
int v2[] = {1, 2, 3, 4, 5, 6, 7,32,99};

    for (int i = 0; i < v1.length; i++) {
        for (int j = 0; j < v2.length; j++) {
            if (v1[i] == v2[j]) {
              
            } else {
            
            v1 = addValueToArray(v2);
            }
        }
    }
    printValues(v1);
    
}

private static int[] addValueToArray(int[] v1){
int[] aux = new int[v1.length+1];
for(int i=0 ; i<v1.length ; i++){
aux[i] = v1[i];
}

    return aux;  
}  
private static void printValues(int[] v1){  
    for(int i=0 ; i<v1.length ; i++){  
        System.out.print(v1[i]+" ");  
    }  
}[/code]

Eu reutilizei parte do seu código, porem sempre mostra o numero repetido ou um 0 no final!

Bom eu consegui, porém já que estava sempre dando errado no ultimo objeto, coloquei para mostrar até o penúltimo.