Quero comparar se o objeto que estou passando já está no array, mas está dando erro NullPointException pois o array está vazio, como poderia resolver esse problema? obrigado.
Contatocontatos[]=newContato[10];publicvoidadicionarContato(Contatoc){for(intz=0;z<contatos.length;z++){Contatosem=newContato();contatos[z]=sem;}for(intx=0;x<contatos.length;x++){for(inti=0;i<contatos.length;i++){if(c.equals(contatos[i])){contatos[i]=null;System.out.println("Contato já existe");break;}}if(contatos[x]==null){contatos[x]=c;}}}
Nesse primeiro for tentei implementar o array com objetos vazios, mas não funciona pois sempre zera tudo ao rodar.
S
strikezado1 like
Inathan, bom dia.
Para essa validação você precisa comparar o objeto em si ? Não seria válida uma comparação em cima de alguma propriedade existente na sua entidade de contato ?
Ajustei seu exemplo para um cenário que eu acredito que funcione, não estou com nenhuma IDE aqui no momento então pode existir algum erro de sintaxe quando você passar para seu ambiente, porém, nesse meu exemplo levei em consideração uma validação em cima de um determinado código para saber se o objeto existe ou não, caso você queira realmente comparar a referência basta modificar a comparação.
Contato[]listaContatos=newContato[10];publicvoidAdicionarContato(Contatocontato){//Percorrendo a lista e identificando se o contato informado já se encontra cadastrado.for(inti=0;i<listaContatos.length;i++){if(listaContatos[i]!=null&&listaContatos[i].Codigo==contato.Codigo){System.out.println("Contato já existe");return;}}//Verificando qual a posição se encontra disponível para inserir o novo contato.for(inti=0;i<listaContatos.length;i++){if(listaContatos[i]==null){listaContatos[i]=contato;break;}}}
Inathan
Bom dia, obrigado pela resposta, vou tentar implementar esse exemplo no meu código, tenha uma bom dia!