quinta-feira, 22 de dezembro de 2016

Comparator e Comparable: Ordenar com duas propriedades.


public class Permissao implements Serializable, Comparator<Permissao>, Comparable<Permissao>{
        private GrupoAcesso grupoAcesso;
        private Tela tela;

    public int compare(Permissao permissao, Permissao outraPermissao) {
        String menu1 = permissao.getTela().getMenu().getNome().toUpperCase();
        String menu2 = outraPermissao.getTela().getMenu().getNome().toUpperCase();        

        // ordem crescente
        return menu1.compareTo(menu2);        

        // ordem decrescente
        // return menu1.compareTo(menu2);
    }
    
    @Override
    public int compareTo(Permissao o) {
        return this.tela.getNome().compareTo(o.getTela().getNome());
    }
}



public class GrupoAcesso implements Serializable{

       private List<Permissao> permissoes = new ArrayList<Permissao>();

    public List<Permissao> getPermissoes() {
        Collections.sort(permissoes);
        Collections.sort(permissoes, new Permissao());
        return permissoes;
    }
}

Nenhum comentário:

Postar um comentário