Pessoal…
como faço pra eliminar valores repetidos de um arranjo de inteiros
int[] arranjo = new int[10]; // assim que crio o arranjo
dai mando preencer com numeros aleatorios entre 10 e 17
dai tenho que eliminar os repetidos!
valews
Pessoal…
como faço pra eliminar valores repetidos de um arranjo de inteiros
int[] arranjo = new int[10]; // assim que crio o arranjo
dai mando preencer com numeros aleatorios entre 10 e 17
dai tenho que eliminar os repetidos!
valews
Ja pensou em percorrer o arranjo com dois loops chegando 1 numero(“fixo”) e outro “dinamico”? Se forem iguais, remove aquela posição.
isso eu to fazendo…eu não to sabendo como remover esse elemento repetido
como que faz pra remover ele
[quote=jcomfilho]isso eu to fazendo…eu não to sabendo como remover esse elemento repetido
como que faz pra remover ele[/quote]
Array não tem tamanho dinâmico, então você não pode remover uma posição.
O que poderia fazer era criar um array de Integer e quando tiver posição repetidas inserir null na posição, mas não remove-la.
por exemplo
int[] arranjo = new int[10];
dai vai
if(arranjo[i] == arranjo[j]){
arranjo[j]=null;
}
???
dá certo atribuir NULL a um inteiro?
Sim, um Integer é um objeto então aceita null, diferente de int que é primitivo e não aceita null.
Mas dai tem que tomar cuidado para não gerar um nullPointerException quando percorrer esse array.
Tem que colocar um if para testar se a posição não é nula, senão da exceção.
if (array[i] != null) {
....
}
legal
mas uma ultima coisa…por ex:
não tem alguma função de alguam classe que faça a exclusão de um arranjo?
por ex…arranjo.excluir(posição) ???
é pq começei a utilizar java no curso a 2 semanas…dai não sei se posso fazer algo meio complexo
[quote=jcomfilho]legal
mas uma ultima coisa…por ex:
não tem alguma função de alguam classe que faça a exclusão de um arranjo?
por ex…arranjo.excluir(posição) ???
é pq começei a utilizar java no curso a 2 semanas…dai não sei se posso fazer algo meio complexo[/quote]
Não tem justamente pq o tamanho do arranjo é imutável. Depois de criado não pode modificá-lo.
Use então listas, List, ArrayList, Vector…
poxa romarcio!
Aqui velho… como eu vou criar esse arranjo INTEGER ???
Integer[] arranjo = new Integer[10];
[quote=jcomfilho]poxa romarcio!
Aqui velho… como eu vou criar esse arranjo INTEGER ???
Integer[] arranjo = new Integer[10];
[/quote]
Assim mesmo como você fez.
vc pode “simular” uma remoção no array copiando os valores dele pra outro array mas não os repetidos entende?
primeiro vc percorre o seu array… cada numero repetido q ele encontrar, atribui um valor q vc sabe q nunca vai ter ( por exemplo -1) naquela posição… lembre-se de anotar quantos -1 vc inseriu
depois cria um novo array com um numero de posições igual a: numero de posições do antigo array - numero de -1 inseridos no array
dae percorre seu array e vai inserindo os numeros que não forem -1 nesse novo array
simples =)