Bom dia galera, estou com uma duvida simples, ao imprimir uma lista de objetos ele ta repetindo os dados do ultimo objeto em todos os indices do Arraylist, segue abaixo o codigo resumido:
Lembre-se que a lista armazena uma referência e não um objeto.
Da forma que estás fazendo tu tens duas posicoes da lista referenciando o mesmo objeto, por isso sempre vai repetir os dados que foram informados por último.
É só observar que tu só tem um new Usuario(), logo tu não tens dois objetos, estás simplesmente alterando o mesmo.
F
FredericoButzke
Acredito que a resposta do sgaothaich está correta!
dessu lembre-se que você está trabalhando com uma ArrayList mas não está criando dois objetos! Pois você está adicionando duas vezes o mesmo objeto na array e modificando os atributos desse objeto nas duas vezes, portanto tua arraylist vai ter index 2 e os dados dos dois objetos serão os mesmos, pois o que vale é o último.
O que você pode fazer é criar dois parametros para o construtor da classe Usuario, nome e sobrenome, e setar eles na construção dessa tua classe, então cada objeto tu terás diferentes valores para os atributos!
Usuariousuario;Scannerentrada=newScanner(System.in);Stringnome,sobrenome;ArrayList<Usuario>lista=newArrayList<Usuario>();System.out.print("digite o nome: ");nome=entrada.next();System.out.print("digite sobrenome: ");sobrenome=entrada.next();lista.add(newUsuario(nome,sobrenome););System.out.print("digite o nome: ");nome=entrada.next();System.out.print("digite sobrenome: ");sobrenome=entrada.next();lista.add(newUsuario(nome,sobrenome););System.out.println(lista);
Espero que ajude!
Abraço,
M
Murilo_Ferreira
Tenta fazer algo assim
Usuariousuario;Scannerentrada=newScanner(System.in);Stringnome,sobrenome;ArrayList<Usuario>lista=newArrayList<Usuario>();System.out.print("digite o nome: ");nome=entrada.next();System.out.print("digite sobrenome: ");sobrenome=entrada.next();lista.add(newUsuario(nome,sobrenome););System.out.print("digite o nome: ");nome=entrada.next();System.out.print("digite sobrenome: ");sobrenome=entrada.next();lista.add(newUsuario(nome,sobrenome););for(Usuariou:lista){System.out.println(u);// imprimi o que toString() retornar}
Boa sorte
D
dessu
Galera eu vi a cagada q eu tava fazendo, deu certo, valeu msm