3
I have a problem to show the data in the arraylist, it always shows the duplicate result
public static void main (String[]args){
Scanner ler=new Scanner(System.in);
Pessoa p=new Pessoa();
ArrayList<Pessoa> listaDePessoas= new ArrayList<>();
System.out.println("Digite o seu nome: ");
p.setNome(ler.nextLine());
System.out.println("Digite sua idade: ");
p.setIdade(ler.nextInt());
listaDePessoas.add(p);
ler.nextLine();
System.out.println("Digite o seu nome: ");
p.setNome(ler.nextLine());
System.out.println("Digite sua idade: ");
p.setIdade(ler.nextInt());
listaDePessoas.add(p);
for(int i=0;i<listaDePessoas.size(); i++){
System.out.println("Nome: "+listaDePessoas.get(i). getNome());
System.out.println("Idade: "+listaDePessoas.get(i). getIdade());
}
result: Name: Luis Age: 19 Name: Luis Age: 19
That’s right!
p
is a reference. Therefore, in a simplified way, any change made inp
will reflect everywhere where this suchp
is referenced, in this case, all items within theArrayList
.– Luídne