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

imprimindo ArrayList

estou com um problema pra imprimir uma lista. no sistema fiz o cadastro de 3 clientes, mas na hora de imprimir, ele imprime 3 vezes o mesmo cliente (o primeiro)

public class Cliente {

    String nome;
    String cpf;
    Endereco endereco;
    Data dataDeCadastro;

    public void imprimeCliente() {
        System.out.println("Nome: " + nome);
        System.out.println("CPF: " + cpf);
        System.out.println("Endereco: " + endereco.imprimeEndereco());
        System.out.println("Data de cadastro: " + dataDeCadastro.imprimeData());
        System.out.println("");
    }

    @Override
    public String toString() {
        return " Nome: " +nome+ "\n CPF: " +cpf+ "\n Endereço: " +endereco.imprimeEndereco()+ "\n Data de cadastro: " +dataDeCadastro.imprimeData();
    }

}
public class Endereco {

    String rua;
    int numero;
    String bairro;
    String cidade;
    String estado;

    public String imprimeEndereco() {
        return this.rua + ", " + this.numero + "\n " + this.bairro + "\n " + this.cidade + " - " + this.estado;
    }

}
public class Data {

    int dia;
    int mes;
    int ano;

    public void formataData(int dia, int mes, int ano) {
        this.dia = dia;
        this.mes = mes;
        this.ano = ano;
    }

    public String imprimeData() {
        return dia + "/" + mes + "/" + ano;
    }

}
import java.util.ArrayList;

public class TesteCliente {

    public static void main(String[] args) {

        Cliente cliente1 = new Cliente();
        cliente1.nome = "Joao da Silva";
        cliente1.cpf = "125.475.859-63";
        cliente1.endereco = new Endereco();
        cliente1.endereco.rua = "Jorge Lobato";
        cliente1.endereco.numero = 745;
        cliente1.endereco.bairro = "Vila Tiberio";
        cliente1.endereco.cidade = "Ribeirao Preto";
        cliente1.endereco.estado = "SP";
        cliente1.dataDeCadastro = new Data();
        cliente1.dataDeCadastro.formataData(22, 03, 2016);

        Cliente cliente2= new Cliente();
        cliente2.nome = "Joao da Silva";
        cliente2.cpf = "125.475.859-63";
        cliente2.endereco = new Endereco();
        cliente2.endereco.rua = "Jorge Lobato";
        cliente2.endereco.numero = 745;
        cliente2.endereco.bairro = "Vila Tiberio";
        cliente2.endereco.cidade = "Ribeirao Preto";
        cliente2.endereco.estado = "SP";
        cliente2.dataDeCadastro = new Data();
        cliente2.dataDeCadastro.formataData(22, 03, 2016);

        Cliente cliente3 = new Cliente();
        cliente3.nome = "Joao da Silva";
        cliente3.cpf = "125.475.859-63";
        cliente3.endereco = new Endereco();
        cliente3.endereco.rua = "Jorge Lobato";
        cliente3.endereco.numero = 745;
        cliente3.endereco.bairro = "Vila Tiberio";
        cliente3.endereco.cidade = "Ribeirao Preto";
        cliente3.endereco.estado = "SP";
        cliente3.dataDeCadastro = new Data();
        cliente3.dataDeCadastro.formataData(22, 03, 2016);

        ArrayList<Cliente> clientes = new ArrayList<>();
        clientes.add(cliente1);
        clientes.add(cliente2);


        System.out.println(clientes);      


    }

}
5 respostas
solução!

Leo,

Você viu que os dados são exatamente os mesmos em ambos ?

Acho que você precisa mudar isso ai, rs.

kkkk...nem tinha visto. copiei e colei

e como eu faria pra pular uma linha entre um cadastro e outro?

Como está imprimindo um array não rola, o que pode fazer é isso :

for(Cliente cliente : clientes){
    System.out.println(cliente);
}

ficou do jeito que eu queria...obrigado