a cada objeto adicionado com o método add, acontece que o ultimo objeto adicionado está sendo adicionado em todas as posições anteriores
Main
public static void main(String[] args) {
List<Pessoa> psR = new ArrayList<Pessoa>();
Pessoa ps = new Pessoa();
Scanner in = new Scanner(System.in);
int cont = 0;
do {
System.out.print("nome: ");
ps.setNome(in.nextLine());
System.out.print("idade: ");
ps.setIdade(Integer.parseInt(in.nextLine()));
psR.add(ps);
System.out.println(psR);
System.out.print("cont? ");
cont = Integer.parseInt(in.nextLine());
} while (cont != 0);
}
classe Pessoa
public class Pessoa {
private String nome;
private int idade;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
@Override
public String toString() {
return "Pessoa{" + "nome=" + nome + ", idade=" + idade + '}';
}
}
Console
nome: viny
idade: 18
[Pessoa{nome=viny, idade=18}]
cont? 1
nome: joao
idade: 19
[Pessoa{nome=joao, idade=19}, Pessoa{nome=joao, idade=19}]
cont? 1
nome: vitor
idade: 28
[Pessoa{nome=vitor, idade=28}, Pessoa{nome=vitor, idade=28}, Pessoa{nome=vitor, idade=28}]
cont?
ja testei com String e funciona normalmente, apenas usando um classe objeto que esse problema ocorre