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}
união de Array em um mesmo array existente?
17 Respostas
<blockquote><div class="quote-author">brunokaue:</div>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}</blockquote>
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!
<blockquote><div class="quote-author">brunokaue:</div>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!
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?
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?
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 ? 
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í ?
> 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. ...O que já fez desse amigão aí ?
Bom eu já consegui comprar os números dos vetores, agora só falta a parte de remover e adicionar o vetor2 no vetor1.
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
}
}
}
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.
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.
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?
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]+" ");
}
}
}
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]+" ");
}
}
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.