Ordenar clientes

1 resposta
L

Como faço para ordenar os clientes por data de cadastro e por nome… segundo a idéia do select

SELECT NOME, DATACADASTRO FROM CLIENTE  ORDER BY DATACADASTRO, NOME

como eu faria isso num List em java para ordenar por dois campos?
por um campo eu usaria assim

public void ordenaPorData(List<Cliente> lst) {
      

        Comparator crescente = new ComparatorData();
        Collections.sort(lst, crescente);



    }


 
    class ComparatorData implements Comparator<Cliente> {

      
        public int compare(Cliente rv1, Cliente rv2) {

            return rv1.getDataCadastro().before(rv2.getDataCadastro()) ? -1 : (rv1.getDataCadastro().after(rv2.getDataCadastro()) ? +1 : 0);
        }
    }

o problema fica quando tenho que comparar pelos dois

1 Resposta

Felagund
class ComparatorData implements Comparator<Cliente> {

      
        public int compare(Cliente rv1, Cliente rv2) {
            if(rv1.getDataCadastro().equals(rv2.getDataCadastro())){
                 return rv1.getNome().compareTo(rv2.getNome());
            }
            return rv1.getDataCadastro().compareTo(rv2.getDataCadastro());
        }
    }

Você pode optar como no meu modelo para deixar o java fazer as comparações somente indicar os campos a serem comparados.

att

Criado 12 de agosto de 2010
Ultima resposta 12 de ago. de 2010
Respostas 1
Participantes 2