Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

ArrayList com vários campos

É possível fazer uma ArrayList armazenar mais de uma variável?

Por exemplo, fizemos ela armazenar elementos do tipo String, e se eu quisesse armazenar todos os dados de um Cliente (nome, cpf, endereço), é possível armazenar tudo na mesma ArrayList?

3 respostas

Boa tarde Thiago, é só não especificar o tipo da lista:

List lista = new ArrayList<>();
        lista.add(1);
        lista.add("Teste");
        lista.add(new Conta());
solução!

Boa Noite Thiago, creio que você esteja querendo armazenar um objeto inteiro, e isso é sim possível basta você definir o tipo da lista, conforme segue:

Considerando que você tenha uma classe Cliente

public class Cliente {

    private Long id;    
    private String nome;            
    private String cpf;    
    private String endereco;

    public Cliente(Long id, String nome, String cpf, String endereco) {
        this.id = id;
        this.nome = nome;
        this.cpf = cpf;
        this.endereco = endereco;
    }

// Métodos getters and setters

}

Basta você criar uma lista de "Cliente" como segue:

public class Executar {

    public static void main(String[] args) {

        //Cria os Clientes
        Cliente cliente1 = new Cliente(new Long(1), "Thiago", "000000", "Avenida Brasil");
        Cliente cliente2 = new Cliente(new Long(2), "Rafael", "000001", "Avenida etc");

        //Cria a lista de Clientes
        List<Cliente> clientes = new ArrayList<Cliente>();
        //Adiciona os clientes na lista
        clientes.add(cliente1);
        clientes.add(cliente2);

        //Exibe os nomes dos clientes por um foreach
        for (Cliente c : clientes) {
            System.out.println("Cliente: " + c.getNome());
        };

    }
}

Oi Tiago é possível sim a ArrayList aceita qualquer coleção pode ser uma coleção de String ou uma coleção de objetos de uma classe qualquer;

Ex: Classe Cliente que você mesmo citou

Class Cliente{
String nome;
String cpf;
String endereço;
int idade;

public String toString(){
        return nome+" -  "+idade;
    }
ArrayList <Cliente> clientes = new ArrayList<>();

Para impressão como sobrescrevi o método toString

System.out.println(clientes);

Me retornara todos os clientes com o nome e a idade ao lado.

Caso persista alguma dúvida a respeito desse exercício pode perguntar aqui mesmo ou se você não tiver mais nenhuma dúvida a respeito você pode marcar uma resposta como solução, finalizando assim esse tópico.Espero ter ajudado. Bons estudos.