até ai tudo bem , na compilacao num da nenhum erro...
mas quando executa,
VEJAM SÒ O RESULTADO: run-single: [DadosPessoais@19821f] CONSTRUÍDO COM SUCESSO (tempo total: 5 segundos)
este codigo só imprime metade da lista, se for 6 elementos imprime 3, se for 20 imprime 10...
Alguem pode me dizer pq isso acontece???>
dionat4n
É pq quando você remove da lista, atualiza o tamanho dela.
Tem que percorrer a lista ao contrário para isso não acontecer!
FelipeGeorge13
dionat4n:
É pq quando você remove da lista, atualiza o tamanho dela.
Tem que percorrer a lista ao contrário para isso não acontecer!
vlws…!
FelipeGeorge13
aqui... eu fiz desse jeito mas está imprimindo sempre o ultimo elemento...
publicclassListaDadosPessoais{privateLinkedList<DadosPessoais>lista=newLinkedList<DadosPessoais>();publicvoidinsereLista(DadosPessoaisp){lista.add(p);}publicvoidmostraLista(inti){System.out.println("Nome: "+lista.get(i).mostraNome());System.out.println("Telefone: "+lista.get(i).mostraTelefone());}publicstaticvoidmain(Stringarg[]){DadosPessoaispessoa=newDadosPessoais();ListaDadosPessoaisdados=newListaDadosPessoais();inti=0;pessoa.recebeNome("ab");pessoa.recebeTelefone(12);dados.insereLista(pessoa);pessoa.recebeNome("bc");pessoa.recebeTelefone(45);dados.insereLista(pessoa);pessoa.recebeNome("fg");pessoa.recebeTelefone(78);dados.insereLista(pessoa);pessoa.recebeNome("de");pessoa.recebeTelefone(848);dados.insereLista(pessoa);pessoa.recebeNome("gfgf");pessoa.recebeTelefone(5456);dados.insereLista(pessoa);pessoa.recebeNome("hgjg");pessoa.recebeTelefone(42151);dados.insereLista(pessoa);System.out.println(dados.lista.size());//aqui imprime 6while(i<dados.lista.size()){//neste laço imprime os 6 elementodados.mostraLista(i);//porem é o ultimo 6vezes!i++;}}}
>
dionat4n
Tem que criar novos objetos a cada vez que for adicionados novas pessoas e novos dados:
DadosPessoaispessoa=newDadosPessoais();ListaDadosPessoaisdados=newListaDadosPessoais();inti=0;pessoa.recebeNome("ab");pessoa.recebeTelefone(12);dados.insereLista(pessoa);pessoa=newDadosPessoais();//cria uma nova pessoadados=newListaDadosPessoais();//cria um novo dadopessoa.recebeNome("bc");pessoa.recebeTelefone(45);dados.insereLista(pessoa);
Senão tu sempre vai referenciar a mesma Pessoa com os mesmos Dados dela.
FelipeGeorge13
dionat4n:
Tem que criar novos objetos a cada vez que for adicionados novas pessoas e novos dados:
DadosPessoaispessoa=newDadosPessoais();ListaDadosPessoaisdados=newListaDadosPessoais();inti=0;pessoa.recebeNome("ab");pessoa.recebeTelefone(12);dados.insereLista(pessoa);pessoa=newDadosPessoais();//cria uma nova pessoadados=newListaDadosPessoais();//cria um novo dadopessoa.recebeNome("bc");pessoa.recebeTelefone(45);dados.insereLista(pessoa);
Senão tu sempre vai referenciar a mesma Pessoa com os mesmos Dados dela.
vlws brother…
dionat4n
FelipeGeorge13:
dionat4n:
Tem que criar novos objetos a cada vez que for adicionados novas pessoas e novos dados:
DadosPessoaispessoa=newDadosPessoais();ListaDadosPessoaisdados=newListaDadosPessoais();inti=0;pessoa.recebeNome("ab");pessoa.recebeTelefone(12);dados.insereLista(pessoa);pessoa=newDadosPessoais();//cria uma nova pessoadados=newListaDadosPessoais();//cria um novo dadopessoa.recebeNome("bc");pessoa.recebeTelefone(45);dados.insereLista(pessoa);
Senão tu sempre vai referenciar a mesma Pessoa com os mesmos Dados dela.