Ajuda com TreeMap

3 respostas
B

Bom dia,

em um TreeMap, associei um email de vendedor com uma lista de clientes… porem nessa lista de clientes preciso distinguir os clientes que começam com código 0 dos demais.
Exemplo de saída:
Vendedor: beto
Clientes que começam por 0: 083, 072, 061, 032
Demais clientes: 954, 231, 124

Minhas colunas na tabela são código do cliente, nome do cliente e nome do vendendor

se alguém puder me ajudar, valeu!

3 Respostas

pedroroxd

Posta ae o que vc ja fez pra gente dar 1 olhada…

B
private static final int COL_EMAIL_VENDEDOR = 3;
   private static final int COL_CLIENTE = 0; 
   private Map<String, Set<String>> emails = new TreeMap<String, Set<String>>();

    public Map<String, Set<String>> recuperarEmails() {

        for (int i = 0; i < tabelaRetorno.getRowCount(); i++) {

            //Pegamos o e-mail do vendedor
            String emailVendedor =  (String) tabelaRetorno.getModel().getValueAt(i, COL_EMAIL_VENDEDOR);

            //Buscamos a lista associada a esse e-mail.
            Set<String> clientes = emails.get(emailVendedor);

            //Caso ela ainda não exista (primeiro cliente desse vendedor), criamos uma lista
            //e já associamos a lista a esse e-mail.
            if (clientes == null) {
                clientes = new TreeSet<String>();
                emails.put(emailVendedor, clientes);
            }

            //Então, adicionamos na lista do vendedor o nome do cliente.
            clientes.add((String) tabelaRetorno.getModel().getValueAt(i, COL_CLIENTE));
        }
        return emails;
    }
E aqui é laço onde pego os dados:
Map<String, Set<String>> clientes = recuperarEmails();
for (String vendedor : clientes.keySet()) {
   System.out.println();
   System.out.println("Vendedor: "+ vendedor);  
   System.out.println("Cliente(s): "+ clientes.get(vendedor));
}
Vini_Fernandes

Cara, voce pode criar um metodo em seu bean Cliente que identifica se o codigo inicia com zero ou nao:

public classe Cliente(){
//outros metodos

//metodo que identifica se o cliente eh vip, isto eh, o codigo comeca com zero
public boolean isVip(){
return codigo.charAt(0) == '0' ? true : false;
}

}

e para incluir na lista:

List<Cliente> listaClienteVip = //...

List<Cliente> listaClienteNormal = //...

for(Cliente cliente : listaCliente){
   if(cliente.isVip()){
      listaClienteVip.add(cliente);
   }
   else{
     listaClienteNormal.add(cliente);
   }
}

T+

Criado 15 de dezembro de 2009
Ultima resposta 15 de dez. de 2009
Respostas 3
Participantes 3