Ajuda com ArrayList

2 respostas
brunoalmeidam

Boa tarde Galera,

To começando a aprender java, mas esbarrei em um coisa, estava tentando montar os dados em uma jtable, e para isso criei meu modelo, quando eu ia listar os dados percebi que na tabela aparecia o total de linha porem o resultado era sempre o ultimo inserido, por exemplo se eu tivesse 5 registros nome1 nome2 nome3 nome4 nome5 apareciam 5 registros na tabela porem todos com nome5.

apos debugar o programa percebi que quando eu ia inserindo um dado na minha arraylist ela ia substituindo todo conteudo do array e nao adicionando mais um tentei forçar o indice porem ainda assim nao funcionou. agora o que eu percebi é que isso ocorre quando uso um array de uma classe que eu criei (usuario) se eu crio um arraylist de string por exemplo funciona perfeito. segue um trecho do código.

List<Usuario>users=new ArrayList<>();
        us.setNome("Nome1");
        us.setCpf("Cpf1");
        us.setEmail("Email1");
        us.setTelefone("Telefone1");
        users.add(us);
                

        us.setNome("Nome2");
        us.setCpf("Cpf2");
        us.setEmail("Email2");
        us.setTelefone("Telefone2");
        users.add(us);


        System.out.println(users.get(0).getNome());
        System.out.println(users.get(1).getNome());

O resultado da saida do println tanto no id0 quanto no id1 eh nome2

se eu mudar para
List<String>users=new ArrayList<>();
        

        users.add("Nome1");
        users.add("Nome2");

        System.out.println(users.get(0));
        System.out.println(users.get(1));

A saida para o id0 é Nome1 e para id1 é Nome2

Valew Galera

2 Respostas

A
public static void main(String[] args) {
    List<Usuario> users = new ArrayList<>();
    Usuario us = new Usuario();        
     
    us.setNome("Nome1");
    us.setCpf("Cpf1");
    us.setEmail("Email1");
    us.setTelefone("Telefone1");
    users.add(us);
        
    us = new Usuario(); // <---- Aqui
    us.setNome("Nome2");
    us.setCpf("Cpf2");
    us.setEmail("Email2");
    us.setTelefone("Telefone2");        
    users.add(us);        
        
    System.out.println(users.get(0).getNome());
    System.out.println(users.get(1).getNome());
 }
brunoalmeidam

Poxa amigão valew mesmo, funcionou certinho

Abraços

Criado 31 de maio de 2014
Ultima resposta 31 de mai. de 2014
Respostas 2
Participantes 2