Imprimindo apenas o nome com ArrayList

7 respostas
Fabio_Verdi

Tem como eu imprimir apenas o nome do cliente modificando a classe TesteList???

package br.com.globalcode.teste;

import java.util.ArrayList;
import java.util.List;
import br.com.globalcode.beans.Cliente;

public class TesteList {

    public static void main(String args[]) {
        Cliente c1 = new Cliente("Fabio", "1111", "cpf1");
        Cliente c2 = new Cliente("Teste", "2222", "cpf2");
        Cliente c3 = new Cliente("Vivian", "3333", "cpf3");
        Cliente c4 = new Cliente("Renan", "3333", "cpf3");
        List clientes = new ArrayList();
        clientes.add(c1);
        clientes.add(c2);
        clientes.add(c3);
        clientes.add(c4);
        // 1. Imprima somente o nome de cada cliente da lista de clientes
        imprimeClientes(clientes);
//        System.out.println("Numero de Clientes: " + clientes.size());
        }
    
    private static void imprimeClientes(List clientes) {
    	for (int i = 0; i < clientes.size(); i++){
    	System.out.println(" Nome do Cliente \t " + clientes.get(i));
    	}
    }

Eu imprimi, mas alterando a classe Cliente.

package br.com.globalcode.beans;

public class Cliente {

    private String nome;
    private String telefone;
    private String cpf;
    private int id;

    /**
     * @param nome
     *            Nome do cliente
     * @param telefone
     *            Telefone do cliente
     * @param cpf
     *            CPF do cliente
     * @param id
     *            ID do cliente
     */
    public Cliente(String nome, String telefone, String cpf, int id) {
        this(nome, telefone, cpf);
        this.id = id;
    }

    /**
     * Este construtor podera ser utilizado quando o id do cliente precisar ser atribuido depois, como por exemplo
     * quando e necessario criar o cliente para salvar no banco de dados, onde o id e gerado automaticamente.
     * 
     * @param nome
     *            Nome do cliente
     * @param telefone
     *            Telefone do cliente
     * @param cpf
     *            CPF do cliente
     * 
     */
    public Cliente(String nome, String telefone, String cpf) {
        this.nome = nome;
        this.telefone = telefone;
        this.cpf = cpf;
    }

    /**
     * 
     * @return CPF do Cliente
     */
    public String getCpf() {
        return cpf;
    }

    /**
     * @return ID do cliente
     */
    public int getId() {
        return id;
    }

    /**
     * @return Nome do cliente
     */
    public String getNome() {
        return nome;
    }

    /**
     * @return Telefone do cliente
     */
    public String getTelefone() {
        return telefone;
    }

    /**
     * @param cpf
     *            CPF do cliente
     */
    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    /**
     * @param id
     *            ID do cliente
     */
    public void setId(int id) {
        this.id = id;
    }

    /**
     * @param nome
     *            Nome do cliente
     */
    public void setNome(String nome) {
        this.nome = nome;
    }

    /**
     * @param telefone
     *            Telefone do cliente
     */
    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

    public String toString() {
        String cliente = "";
        cliente += this.nome;// + "\t CPF (" + this.cpf + ") ";
 //       cliente += "- Tel: {" + this.telefone + "}";
        return cliente;
    }
}

7 Respostas

Roger75

Assim?

private static void imprimeClientes(List clientes) {
     	for (int i = 0; i &lt clientes.size(); i++){

                Cliente c=(Cliente)clientes.get(i);
     	System.out.println(" Nome do Cliente \t " + c.getNome());
      }
T
System.out.println(" Nome do Cliente \t " + ((Cliente) clientes.get(i)).getNome());

Obviamente, se você usasse generics (ou seja, List<Cliente>), você poderia evitar o cast.

rmarin

Tá usando Java 5? Se sim:

Sua lista pode ser assim:

List<Cliente> clientes = new ArrayList<Cliente>();

Logo, no seu método imprimeClientes você pode fazer:

System.out.println(" Nome do Cliente \t " + clientes.get(i).getNome());

Sacou? :thumbup:

sapulha

Fabio Verdi:
Tem como eu imprimir apenas o nome do cliente modificando a classe TesteList???

Faz assim:

package br.com.globalcode.teste;

import java.util.ArrayList;
import java.util.List;
import br.com.globalcode.beans.Cliente;

public class TesteList {

    public static void main(String args[]) {
        Cliente c1 = new Cliente("Fabio", "1111", "cpf1");
        Cliente c2 = new Cliente("Teste", "2222", "cpf2");
        Cliente c3 = new Cliente("Vivian", "3333", "cpf3");
        Cliente c4 = new Cliente("Renan", "3333", "cpf3");
        List clientes = new ArrayList();
        clientes.add(c1);
        clientes.add(c2);
        clientes.add(c3);
        clientes.add(c4);
        // 1. Imprima somente o nome de cada cliente da lista de clientes
        imprimeClientes(clientes);
        }
    
    private static void imprimeClientes(List clientes) {
    	for (int i = 0; i < clientes.size(); i++){
    	System.out.println(" Nome do Cliente \t " + ((Cliente)clientes.get(i)).getNome());
    	}
    }
P

Sim, no metodo imprimi cliente vc poderia chamar o metodo getNome da classe Cliente.

Ficaria +/- assim:

private static void imprimeClientes(List clientes) {
     	for (int i = 0; i &lt clientes.size(); i++){
             Cliente cliente = (Cliente)clientes.get(i);
     	     System.out.println(" Nome do Cliente \t " + cliente.getNome());
     	}

ou

private static void imprimeClientes(List clientes) {
     	   for (int i = 0; i &lt clientes.size(); i++){
         	System.out.println(" Nome do Cliente \t " + ((Cliente)clientes.get(i)).getNome());
     	}
Fabio_Verdi

Caraio… To dando cabeçada na parede de não ter lembrado de chamar o método…
Mas ae, como eu to iniciando é normal pangua desse jeito não é não???

Espero respostas… hehehe

rmarin

Cara, normal, o inicio é sempre o inicio…

Criado 16 de agosto de 2006
Ultima resposta 16 de ago. de 2006
Respostas 7
Participantes 6