[DÚVIDA]Eliminar Valor de um Arranjo

10 respostas
J

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

10 Respostas

felipebonezi

Ja pensou em percorrer o arranjo com dois loops chegando 1 numero(“fixo”) e outro “dinamico”? Se forem iguais, remove aquela posição.

J

isso eu to fazendo…eu não to sabendo como remover esse elemento repetido
como que faz pra remover ele

romarcio

jcomfilho:
isso eu to fazendo…eu não to sabendo como remover esse elemento repetido
como que faz pra remover ele

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.

J

por exemplo

int[] arranjo = new int[10];

dai vai

if(arranjo[i] == arranjo[j]){

arranjo[j]=null;

}

???

dá certo atribuir NULL a um inteiro?

romarcio

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) { .... }

J

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

romarcio

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

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…

J

poxa romarcio!
Aqui velho… como eu vou criar esse arranjo INTEGER ???

Integer[] arranjo = new Integer[10];
romarcio

jcomfilho:
poxa romarcio!
Aqui velho… como eu vou criar esse arranjo INTEGER ???

Integer[] arranjo = new Integer[10];

Assim mesmo como você fez.

R

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 =)

Criado 25 de março de 2011
Ultima resposta 25 de mar. de 2011
Respostas 10
Participantes 4